有没有比 for 循环更好的方法将对象数组的 属性 添加到另一个数组?
Is there a better way to add a property of an array of objects to another array than a for loop?
我有一个对象数组,它们都有一个名为 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有没有方法可以实现我想要达到的效果?
可以使用map
数组的方法对数组进行变换
类似于:
var allPeople = [ { 'id': someNumber, 'name': someString }, { 'id': anotherNumber, 'name': anotherString }]
var ids = allPeople.map(function(person) {return person.id;});
//ids is [someNumber, AnotherNumber ]
var allPeople = [{
'id': someNumber,
'name': someString
}, {
'id': anotherNumber,
'name': anotherString
}, ...]
var selectedPeople = allPeople.map(function(person) {
return person.id
});
console.log(selectedPeople);
我有一个对象数组,它们都有一个名为 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有没有方法可以实现我想要达到的效果?
可以使用map
数组的方法对数组进行变换
类似于:
var allPeople = [ { 'id': someNumber, 'name': someString }, { 'id': anotherNumber, 'name': anotherString }]
var ids = allPeople.map(function(person) {return person.id;});
//ids is [someNumber, AnotherNumber ]
var allPeople = [{
'id': someNumber,
'name': someString
}, {
'id': anotherNumber,
'name': anotherString
}, ...]
var selectedPeople = allPeople.map(function(person) {
return person.id
});
console.log(selectedPeople);