gpt4 book ai didi

javascript - 如何使用 Object.assign 通过动态键更新 hashmap 字段并避免突变?

转载 作者:行者123 更新时间:2023-11-29 21:13:00 25 4
gpt4 key购买 nike

我如何定义 updater 以在 newState.c.x === 8 中实现并避免 state 中的任何突变?

var state = {
a: {x: 1, y: 1},
b: {x: 2, y: 2},
c: {x: 3, y: 3},
d: {x: 4, y: 4},
};

var key = 'c';
var x = 8;

var updater = {
//Having state, key and x here....

}

var newState = Object.assign({}, state, updater);
if(newState.c.x === 8) {
wooHoo();

}

提前致谢!

最佳答案

您可以使用一些 ES6 解构和 Object.assign()

var state = {
a: {x: 1, y: 1},
b: {x: 2, y: 2},
c: {x: 3, y: 3},
d: {x: 4, y: 4},
};

var key = 'c';
var x = 8;

var updater = {
[key]: Object.assign({}, state[key], {x})
}

var newState = Object.assign({}, state, updater);
if(newState.c.x === 8) {
alert('True')
}

关于javascript - 如何使用 Object.assign 通过动态键更新 hashmap 字段并避免突变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40806982/

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