gpt4 book ai didi

javascript - Object.Assign 不创建新实例

转载 作者:行者123 更新时间:2023-12-03 00:01:49 24 4
gpt4 key购买 nike

我有以下代码,为 Redux 构建操作负载:

  export function getInfoFromAPI() {
const initialAction = {
type: types.GET_SETTLE_SHEETS_FROM_LOCAL_API
};
let returnedAction = {};
let payloadBuild = {};
return dispatch => {
return APItools.getInfoFromLocalAPI()
.then(jsonResult => {
Object.keys(jsonResult).map( (resultArrayId) => {
debugger;
const { foo, bar, foobar, foofoo, barbar} = jsonResult[resultArrayId];
payloadBuild = _.merge({},
{
[barbar]: {
foo: foo,
bar: bar,
foobar: foobar,
foofoo: foofoo,
barbar: barbar
}
});
});
returnedAction = Object.assign({}, initialAction,
{
payload: payloadBuild
});
dispatch(returnedAction);
});
};
}

我正在尝试构建一个包含来自本地 API 的数据的单个 json 对象。当我之前使用过 Object.assign() 时,它可以根据键添加信息,并将其附加到预先存在的对象中,就像您想象的那样。

我尝试过 lodash _.merge() 和 Object.assign 两者,将它们切换,但它似乎不起作用......它不断用下一个传入的值覆盖键 [barbar]从 map 功能,即使它会像

[barbar] = 1 

然后

[barbar] = 2

它将取代 key 及其所有子项......为什么?我该如何解决这个问题?当我以前使用 Object.assign 时,它只会将新键附加到对象,但我认为一次只能添加一个。这是我第一次使用 map ,我认为它只会继续附加新对象及其唯一的键值。

最佳答案

你忘记合并你的旧值(value)观

let buildValue = {}

arrayWithStuff.map(info => {
buildValue = Object.assign(buildValue, {
[info.bar] : {
Other stuff..
})

您正在将每个结果与一个新的空对象(第一个参数)合并。

祝你好运!

关于javascript - Object.Assign 不创建新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55134887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com