6.7 KiB
6.7 KiB
title | localeTitle |
---|---|
Everything Be True | 一切都是真的 |
如果卡住,请记得使用**Read-Search-Ask
** 。尝试配对程序并编写自己的代码
问题说明:
程序需要检查第二个参数是否是一个真正的元素,并且它必须为第一个参数中的每个对象检查这个。
相关链接
提示:1
记得迭代第一个参数来检查每个对象。
现在尝试解决问题
提示:2
只有当所有这些都是真理时,我们才会返回真实,所以请确保所有这些都是真的。
现在尝试解决问题
提示:3
现在尝试解决问题
您可以使用循环或回调函数,有多种方法可以解决此问题。
扰流警报!
解决方案!
基本代码解决方案
使用for-in循环和hasOwnProperty
function truthCheck(collection, pre) {
// Create a counter to check how many are true.
var counter = 0;
// Check for each object
for (var c in collection) {
// If it is has property and value is truthy
if (collection[c].hasOwnProperty(pre) && Boolean(collection[c][pre])) {
counter++;
}
}
// Outside the loop, check to see if we got true for all of them and return true or false
return counter == collection.length;
}
// test here
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
代码说明:
- 首先,我创建一个计数器来检查有多少个案实际上是真的。
- 然后检查每个对象的值是否真实
- 在循环之外,我检查计数器变量是否具有与集合长度相同的值,如果为true则返回true ,否则返回false
相关链接
中级代码解决方案:
使用Array.every()
function truthCheck(collection, pre) {
return collection.every(function (element) {
return element.hasOwnProperty(pre) && Boolean(element[pre]);
});
}
// test here
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
代码说明:
- 使用本机“every”方法来测试数组中的所有元素是否都通过了测试。
- 此链接将帮助Array.prototype.every()
相关链接
高级代码解决方案
function truthCheck(collection, pre) {
// Is everyone being true?
return collection.every(obj => obj[pre]);
}
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
代码说明:
- 对于
collection
数组中的_每个_对象,检查在pre
参数中传递的对象属性的真实性 Array#every
方法在内部检查回调返回的值是否真实。- 如果它为_每个_对象传递,则返回
true
。否则,返回false
。
相关链接
捐款说明:
- 请勿添加与任何现有解决方案类似的解决方案。如果您认为它**相似但更好** ,那么尝试合并(或替换)现有的类似解决方案。
- 添加解决方案的说明。
- 将解决方案分为以下类别之一 - 基本 , 中级和高级 。
- 如果您添加了任何**相关的主要内容,**请仅添加您的用户名。 ( 不要 删除任何现有的用户名 )