是否有更好的方法将对象数组的属性添加到另一个数组而不是for循环?

时间:2015-01-13 20:17:49

标签: javascript arrays object

我有一个对象数组,它们都有一个名为Id的属性,与此类似:

var allPeople = [ { 'id': someNumber, 'name': someString }, { 'id': anotherNumber, 'name': anotherString }, ... ]

我想获取每个id并将它们连接到另一个数组,我将称之为selectedPeople

[ someNumber, AnotherNumber ]

目前,我正在使用for循环将每个ID推送到selectedPeople数组:

 for (i = 0; i < allPeople.length; i++) {
      selectedPeople.push(allPeople[i].id);
 }

然而,这感觉相当程序化,我想知道是否有更好的方法来解决这个问题? Javascript是否有一种方法可以实现我想要实现的目标?

2 个答案:

答案 0 :(得分:5)

Array#map

    var allPeople = [{
      'id': someNumber,
      'name': someString
    }, {
      'id': anotherNumber,
      'name': anotherString
    }, ...]
    var selectedPeople = allPeople.map(function(person) {
      return person.id
    });
    console.log(selectedPeople);

答案 1 :(得分:1)

您可以使用map数组方法转换数组

类似的东西:

var allPeople = [ { 'id': someNumber, 'name': someString }, { 'id': anotherNumber, 'name': anotherString }]

var ids = allPeople.map(function(person) {return person.id;});
//ids is [someNumber, AnotherNumber ]