如何从数组中删除我想要的对象并使用.forEach将它们添加到另一个数组?

时间:2017-11-15 23:54:43

标签: javascript arrays

这是我正在努力的编码挑战,似乎无法掌握我需要做的事情。不确定我是否朝着正确的方向前进。

以下是说明:这里有一个名为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 {
    // 
  }
});

4 个答案:

答案 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
});

示例:

&#13;
&#13;
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;
&#13;
&#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的回调函数的对象数组