有没有更好的方法来添加一个对象数组的属性到另一个数组而不是for循环?
问题描述:
我有对象都有一个叫做Id
特性,奠定了与此相同的数组:有没有更好的方法来添加一个对象数组的属性到另一个数组而不是for循环?
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是否有一种方法可以实现我想实现的目标?
答
var allPeople = [{
'id': someNumber,
'name': someString
}, {
'id': anotherNumber,
'name': anotherString
}, ...]
var selectedPeople = allPeople.map(function(person) {
return person.id
});
console.log(selectedPeople);
+0
我没有意识到这一点。谢谢! – ReactingToAngularVues
答
可以使用map
阵列的方法来变换数组
类似:
var allPeople = [ { 'id': someNumber, 'name': someString }, { 'id': anotherNumber, 'name': anotherString }]
var ids = allPeople.map(function(person) {return person.id;});
//ids is [someNumber, AnotherNumber ]
对于什么是它的价值我想使用for循环来做它 – Ding
你的数据最初来自JSON吗?如果是这样,那么你可以在解析时构建第二个数组,因此你不需要第二个循环。 –