将对象属性混合到对象数组中

时间:2013-02-12 00:45:07

标签: javascript underscore.js

extra的值混合到arr,生成result而不以任何方式修改arr的最有效方法是什么? 使用:普通javascript,下划线,lodash(下划线compat),jquery或lodash,按优先顺序排列。

arr = [
  {name: "A"},
  {name: "B"},
  {name: "C"},
]

extra = {
  "B": value1
  "C": value2
}

result == [
  {name: "A"},
  {name: "B", extra: value1},
  {name: "C", extra: value2},
] 
// true !

1 个答案:

答案 0 :(得分:2)

for (var x = 0; x < arr.length; x++) {
    if (arr[x].hasOwnProperty('name')) {
       if (extra.hasOwnProperty(arr[x].name)) {
           arr[x].extra = extra[arr[x].name];
       }
    }
}

外部hasOwnProperty可能有点过分。

http://jsfiddle.net/Y3Abe/2/