我尝试遍历整个阵列并找出' true'他们是。现在,当我运行该函数时,我得到一些 undefined-result 。 :(为什么?
myArray = [
{text: 'hola', done: false},
{text: 'hola', done: true},
{text: 'hola', done: true},
{text: 'hola', done: false},
{text: 'hola', done: true}
];
var howMany = function(myArray){
var result;
for (var item in myArray){
if(myArray.done === true)
result++;
}
return result;
};
var items =howMany(myArray);
console.log(items) // I want to see if it's correct
答案 0 :(得分:5)
a)您没有初始化result
:
var result = 0;
b)这不是你如何迭代数组的项目:
for (var i = 0; i < myArray.length; i++) {
var item = myArray[i];
if (item.done === true) { // <-- "item" here, not "myArray"!
result++;
}
}
答案 1 :(得分:4)
检查result
变量是否已使用0
进行初始化。迭代中还有另一个问题。您需要使用myArray[item]
来获取对象属性的值:
if (myArray[item].done === true)
答案 2 :(得分:1)
尝试将变量初始化为实际值:var result = 0;
编辑:另外,根据VisioN的回答,您需要检查myArray[item].done