我无法过滤包含对象的数组。非常感谢您的解释。
说明:
//使用filter(),只返回下面的人数组中的朋友。 //将其分配给名为' trueFriends'。
的变量我的解决方案:
var trueFriends = [];
peopleIknow.filter(function(){
for(var i = 0; i < peopleIknow.length; i++){
if (peopleIknow[i].friend == true){
trueFriends.push(peopleIknow[i]);
}
}
});
var peopleIknow = [
{ name: "Steve", friend: true },
{ name: "Dan", friend: false },
{ name: "Bart", friend: true },
{ name: "Sarah", friend: false },
{ name: "Michelle", friend: false },
{ name: "Holly", friend: true }
];
答案 0 :(得分:2)
您不应在for
中使用filter
循环。 Filter迭代数组并根据条件返回所有元素
var peopleIknow = [
{ name: "Steve", friend: true },
{ name: "Dan", friend: false },
{ name: "Bart", friend: true },
{ name: "Sarah", friend: false },
{ name: "Michelle", friend: false },
{ name: "Holly", friend: true }
];
var o = peopleIknow.filter(e=> e.friend );
console.log(o)
&#13;
答案 1 :(得分:1)
在for
函数中使用filter
循环违背了目的 - 尝试使用filter
函数进行迭代。在声明数组之前,你也不应该尝试filter
数组。
filter
函数的第一个参数是被迭代的项,并且您只对friend
属性感兴趣,因此您只能提取friend
属性。如果friend
为真,那么您希望将true
返回到filter
函数,以便它包含在最终数组中 - 否则,返回false
。因此,只需按原样返回friend
属性。
const peopleIknow = [
{ name: "Steve", friend: true },
{ name: "Dan", friend: false },
{ name: "Bart", friend: true },
{ name: "Sarah", friend: false },
{ name: "Michelle", friend: false },
{ name: "Holly", friend: true }
];
const trueFriends = peopleIknow.filter(({ friend }) => friend);
console.log(trueFriends);
答案 2 :(得分:0)
您可以使用layer_1 = tf.add(tf.tensordot(tf.cast(x, tf.float32), weights['h1'], [[2], [0]]), biases['b1'])
和reduce()
来执行相同操作。
这是使用filter()
方法。对于数组的每个元素,函数的减少和过滤运行一次。
reduce()
答案 3 :(得分:0)
不要在过滤器功能中运行for循环。过滤器非常易于使用。如果传递给filter的函数的结果为true,则将该元素添加到返回值。这就是你要找的东西!
var peopleIknow = [
{ name: "Steve", friend: true },
{ name: "Dan", friend: false },
{ name: "Bart", friend: true },
{ name: "Sarah", friend: false },
{ name: "Michelle", friend: false },
{ name: "Holly", friend: true }
];
var trueFriends = [];
// only the friends where person.friend is truthy
trueFriends = peopleIknow.filter(person => person.friend);
console.log(trueFriends);
&#13;
答案 4 :(得分:0)
您创建了过滤器并应用过滤器在其中执行的操作,此代码将按您的意愿运行。
var trueFriends = [];
var peopleIknow = [
{ name: "Steve", friend: true },
{ name: "Dan", friend: false },
{ name: "Bart", friend: true },
{ name: "Sarah", friend: false },
{ name: "Michelle", friend: false },
{ name: "Holly", friend: true }
];
trueFriends = peopleIknow.filter(function(item){
return item.friend});
console.log(trueFriends)
&#13;