分配一个javascript对象,用1指令更改某些属性

分配一个javascript对象,用1指令更改某些属性,javascript,ecmascript-6,lodash,Javascript,Ecmascript 6,Lodash,我有以下javascript指令(使用lodash): 我需要做的是在分配给“数据”对象之前更改“下一个”对象的某些属性。 具体来说,我需要格式化一个时间属性(称为“开始时间”),并向“数据”对象添加另一个属性 已更新 “下一个”对象就是这样的: next = { id: "1", start_time: "20:00:00", title: "Example" } 我需要的是这样一个新对象: next = { key: "new_key" // NEW PRO

我有以下javascript指令(使用lodash):

我需要做的是在分配给“数据”对象之前更改“下一个”对象的某些属性。
具体来说,我需要格式化一个时间属性(称为“开始时间”),并向“数据”对象添加另一个属性

已更新

“下一个”对象就是这样的:

next = {
    id: "1",
    start_time: "20:00:00",
    title: "Example"
}
我需要的是这样一个新对象:

next = {
    key: "new_key" // NEW PROPERTIES ADDED TO THE OBJECT
    id: "1",
    start_time: "20:00", // THIS PROPERTIES HAS BEEN FORMATTED
    title: "Example"
}
新对象将分配给添加到“acc”数组的新项目的“数据”属性。
是否可以使用ES2015或lodash执行1个指令

已解决

我使用以下代码(Object.assign和map)解决了这个问题:


谢谢

考虑
Object.assign()
。它获取一个基本对象,然后将其与一个或多个其他对象合并,覆盖相应的字段:

Object.assign({},next,{key:myKey,start\u-time:format(next.start\u-time)})


请注意,从一个简单的新对象开始是惯用的
{}
,以避免对现有对象进行变异。

请在问题中添加一些数据。在这种情况下,
map
reduce
更合适。我不太了解javascript,如果你能帮我优化这段代码,我将不胜感激。好的建议,我想这就是我一直在寻找的。但是我意识到“next”变量不是一个对象,而是一个对象数组。所以我需要使用你的代码来处理所有“下一步”项目。
next = {
    key: "new_key" // NEW PROPERTIES ADDED TO THE OBJECT
    id: "1",
    start_time: "20:00", // THIS PROPERTIES HAS BEEN FORMATTED
    title: "Example"
}
list = _.reduce(list, (acc, next, index) => {
    next = next.map(function(item) {
        return Object.assign({}, item, {key: new_key, start_time: format_date});
    });

    acc.push({
        key: index,
        data: next
    });
    return acc;
}, []);