我有一个数组
var ar=['aa','cc','po']
我想在检查给定数组的值后将对象推送到新数组中。换句话说
我有这些给定的条件
var ar=['aa','cc','po']
var arr =[{name:"po"},{name:'aa'},{name:'cc'}];
新数组中的预期输出
[{name:'aa'},{name:'cc'},{name:"po"}]
作为0
索引中的“aa”
,然后我添加了名称属性aa
的对象。
我尝试这样。但是我用了两个来看看。有没有简单的方法可以做到这一点
var newArr=[];
for(var i=0;i<ar.length ;i++){
var text =ar[i];
for(var j=0;j<arr.length ;j++){
var obj =arr[j];
console.log(obj.name);
/*if(obj.name===text){
newArr.push(obj);
}*/
}
}
console.log(newArr);
最佳答案
这是一个分为两部分的提案,首先使用对 arr
项的引用构建一个对象,然后使用 ar
的给定项创建一个新数组。
var ar = ['aa', 'cc', 'po'],
arr = [{ name: "po" }, { name: 'aa' }, { name: 'cc' }],
object = Object.create(null),
result = [];
arr.forEach(function (a) {
object[a.name] = a;
});
ar.forEach(function (a) {
object[a] && result.push(object[a]);
});
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
关于javascript - 如何使用数组创建对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36998013/