gpt4 book ai didi

javascript - 在 JSON 中查找给定键的值并使用 javascript 更改该值

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

我想编写一个函数,它可以根据键查找值并将该值替换为另一个值。键是从 JSON 的起始节点开始的树。这是例子。

var myData = {
name : 'Dan',
address: {
city : 'Santa Clara',
details : {
'prevhouse' : ''
}
}
}

函数的输入是一棵 key 树。例如,myData-address-details-prevhouse

当我用新值传递此键时,例如“Texas”,prevhouse 值将更改为我发送的新值。

新的 JSON 将是

var myData = {
name : 'Dan',
address: {
city : 'Santa Clara',
details : {
'prevhouse' : 'Texas'
}
}
}

这是我目前写的

var tree = key.split("-");

现在树变量包含 ["myData","address", "details","prevhouse"]

我知道我们可以使用 myData[tree[0]][tree[1]][tree[2]] 访问该对象,但不知何故无法从解析值中动态获取它。

我们如何动态生成它,因为深度的长度直到运行时才知道。

希望得到帮助。

最佳答案

试试这段代码:

    var myData = {
name: 'Dan',
address: {
city: 'Santa Clara',
details: {
prevhouse: ''
}
}
};


function setAttribute(obj, key, value) {
var i = 1,
attrs = key.split('-'),
max = attrs.length - 1;

for (; i < max; i++) {
attr = attrs[i];
obj = obj[attr];
}

obj[attrs[max]] = value;
console.log('myData=', myData);

}

setAttribute(myData, "myData-address-details-prevhouse", "Texas");

here一个有效的 jsfiddle 演示;查看控制台结果

关于javascript - 在 JSON 中查找给定键的值并使用 javascript 更改该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983694/

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