javascript - 如何使用数组创建对象数组?

标签 javascript jquery

我有一个数组

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的对象。

我尝试这样。但是我用了两个来看看。有没有简单的方法可以做到这一点

FIDDLE

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/

相关文章:

javascript - 从 DOM 中删除元素时过渡位置发生变化

javascript - jQuery 获取列表中父级的文本

jquery - 为什么这个 jQuery 数据示例不起作用?

javascript - 如何使div在事件发生时滑动到窗口底部

javascript - 如何查找两个日期之间的确切月份和日期 - angularjs

javascript - 在redis中检索单个哈希表元素

javascript - 迭代包含美元金额的表列在添加时返回 NaN

javascript - 在 2 个图像之间循环淡入和淡出

javascript - 在调整窗口大小时在导航栏上添加 'More options'

javascript - jQuery 多层 JSON