【发布时间】:2016-06-14 20:36:02
【问题描述】:
我正在尝试映射两个数组并在我的代码中创建一个全新的数组
我有类似的东西
var array1 =[
{'name':'John'
'id': '1'},
{'name':'Ted'
'id': '2'},
{'name':'KK'
'id': '3'}
];
var array2 =[1, 2];
var info = [];
for (var i = 0; i <array2.length; i++){
var id = array2[i];
var p = array1.filter(function(person){
return id === person.id
})
info.push(p)
}
我希望我的 info 数组包含 John 和 Ted 之类的
[
{'name':'John'
'id': '1'},
{'name':'Ted'
'id': '2'}
]
但是,我得到了
[
[
{'name':'John'
'id': '1'}
],
[
{'name':'Ted'
'id': '2'}
]
]
我不确定我做错了什么。无论如何我可以改进我的代码以使其更充分吗?非常感谢!
【问题讨论】:
-
你应该修正花哨的引号
-
您的代码是由内而外的。在
filter中循环array2,或者更好地使用indexOf或some。
标签: javascript arrays