lodash:将属性插入同一对象内的另一个属性

时间:2019-09-05 03:48:46

标签: javascript arrays lodash

如何使用lodash将新键映射到数组键之外

这是我的数组

 let data = [{
        item : {
            data1 : data1
            data2 :  data2
        },
        data3 : data3
    }]

我想要出去:

let data = [{
        data1 : data1
        data2 :  data2
        data3 : data3
 }
]

这是我尝试的。我想做这样的事情

 let data = _.map(data, function(item, data) {
            return { item.item, data3: item.data3 };
        });

Mysyntax错误的地方。如何删除项目密钥

3 个答案:

答案 0 :(得分:3)

您不需要lodash就能完成这项简单的工作。

只需destructure itemmap的回调参数中的其余键,然后就可以使用spread syntax返回合并的对象。

let data = [{
  item: {
    data1: 'a',
    data2: 'b',
  },
  data3: 'c'
}];

const result = data.map(({item, ...rest}) => ({...item, ...rest}));
console.log(result);

答案 1 :(得分:1)

您还可以使用Object.assign()

let data = [{item: {data1: 'data1', data2: 'data2'}, data3: 'data3'}];

data = [Object.assign(data[0].item, { data3: data[0].data3 })];

console.log(data);

答案 2 :(得分:0)

我怀疑map函数是否会削减您需要的是使用data3扩展项目。希望这行得通

let data = [{
  item: {
    data1: 'data1',
    data2: 'data2'
  },
  data3: 'data3'
}]

data = [{...data[0].item , data3: data[0].data3}]

console.log(data)

相关问题