gpt4 book ai didi

javascript - 给定对象在对象中的位置,如何修改对象属性

转载 作者:行者123 更新时间:2023-11-30 11:51:32 24 4
gpt4 key购买 nike

给定一个对象 obj,我可以使用类似 obj.a.b.c = "new value" 的东西修改它的属性。但是,我希望能够以编程方式使用数组形式的属性位置来执行此操作。我怎样才能制作一个看起来像这样的函数:

modifyProperty(obj, ["a", "b", "c"], "新值");

相当于

obj.a.b.c = "新值";

?

最佳答案

你可以使用 Array#reduce对于它,如果没有对象可用,则使用默认对象。

function modifyProperty(object, path, value) {
var last = path.pop();
path.reduce(function (r, a) {
if (!(a in r)) {
r[a] = {};
}
return r[a];
}, object)[last] = value;
}

var object = {};
modifyProperty(object, ["a", "b", "c"], "new value");
console.log(object);

关于javascript - 给定对象在对象中的位置,如何修改对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39300465/

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