使用下划线替换另一个对象的对象键

时间:2015-08-04 22:36:47

标签: javascript underscore.js

使用下划线,如何将每个data.type键替换为example中的相应对象。

例如,我有:

  var example = [
    {
      id: 1,
      data: {
        type: '/api/data/1/'
      }
    },
    {
      id: 2,
      data: {
        type: '/api/data/2/'
      }
    },
  ];

而且:

  var data = [
    {
      id: 1,
      uri: '/api/data/1/'
    },
    {
      id: 2,
      uri: '/api/data/2/'
    }
  ];

想制作:

  var example = [
    {
      id: 1,
      data: {
        type: {
          id: 1,
          uri: '/api/data/1/'
        }
      }
    },
    {
      id: 2,
      data: {
        type: {
          id: 2,
          uri: '/api/data/2/'
        }
      }
    },
  ];

2 个答案:

答案 0 :(得分:1)

如果项目是连续的,您可以使用for循环。

for(var i=0;i< example.length; i++) {
    example[i].data.type = data[i];
}

console.log(example);

答案 1 :(得分:0)

像下划线这样的库已经在很大程度上被更新版本的ECMAScript中的功能所取代。如果你想修改原始数组(根据Sushanth的回答),请使用ES5的 forEach

example.forEach(function(v, i) {
  example[i].data.type = data[i];
});

console.log(JSON.stringify(example));