这是我正在努力的编码挑战,似乎无法掌握我需要做的事情。不确定我是否朝着正确的方向前进。
以下是说明:这里有一个名为people的数组。他们中的一些是我们的朋友,有些则不是。 1.创建一个名为friends的空数组。 2.使用.forEach,循环人并将我们朋友的那些添加到空的朋友数组中。
以下是提供的代码:
var people = [
{name: "Landy",friend: true},
{name: "Corey",friend: true},
{name: "Ted",friend: false},
{name: "Sperry",friend: true},
{name: "Bill",friend: false}
];
到目前为止我的代码:
var friends = [];
people.forEach(function(people){
if (people === true) {
return name;
} else {
//
}
});
答案 0 :(得分:2)
var friends = [];
people.forEach(function(person){
if (person.friend) friends.push(person)
});
答案 1 :(得分:2)
一种可能的解决方案是
var friends = [];
people.forEach(p => {
if(p.friend) // if person is a friend
friends.push(p); // push it to our friends array
});
// or
people.forEach(p => p.friend && friends.push(p)); // short-circuiting
如果我们不必使用.forEach
// use the key ".friend" as the condition
var friends = people.filter(p => p.friend);
传统的做法
var friends = [];
for(var i = 0; i < people.length; i++){
p = people[i]; // get i-th people
if(p.friend) // if person is a friend
friends.push(p); // push it to our friends array
});
示例:
var people = [
{name: "Landy",friend: true},
{name: "Corey",friend: true},
{name: "Ted", friend: false},
{name: "Sperry", friend: true},
{name: "Bill",friend: false}
];
var friends = [];
people.forEach(p => {
if(p.friend)
friends.push(p);
});
console.log(friends);
&#13;
答案 2 :(得分:0)
我会使用#Array.prototype.filter来做这件事。这是最简单的。您还可以使用#Array.prototype.map将“人员”转换为“名称”。单击按钮运行下面的代码并亲自查看。
var people = [
{name: "Landy",friend: true},
{name: "Corey",friend: true},
{name: "Ted",friend: false},
{name: "Sperry",friend: true},
{name: "Bill",friend: false}
];
var friends = people
// only keep the people that are friends
.filter(person => person.friend)
// transform a person to a name
.map(person => person.name);
console.log(friends)
答案 3 :(得分:-2)
这是一个使用$ .grep();
的快速解决方案var friends=$.grep(people,function(o){
return o.friend;
});
$。grep()返回传递给返回true的回调函数的对象数组