gpt4 book ai didi

javascript - 在嵌套对象中查找键并替换其值 - Javascript

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

这是我的 fiddle :DEMO

通过递归迭代,我能够在 object2 object3 中找到键并将其值替换为 data2 data3 对象中的值。

但是,如果它是一个数组,我无法替换该值。 (在这种情况下称为“坐标”的键)这怎么能解决?

function update(object, data) {
function getAllKeys(o) {
Object.keys(o).forEach(function(k) {
if (typeof o[k] === 'object') {
return getAllKeys(o[k]);
}
keys[k] = o;
});
}
var keys = Object.create(null);
getAllKeys(object);
Object.keys(data).forEach(function(k) {
if (keys[k] && k in keys[k]) { // check if key for update exist
keys[k][k] = data[k];
}
});
}

最佳答案

更新 getAllKeys 方法:

  function getAllKeys(o) {
Object.keys(o).forEach(function(k) {
contains_object = Array.isArray(o[k]) && o[k].some(val=> { return typeof val == "object" && !Array.isArray(val); });
if ((Array.isArray(o[k]) && !contains_object) || typeof o[k] !== 'object') {
keys[k] = o;
} else {
return getAllKeys(o[k]);
}
keys[k] = o;
});
}

注意:!(o[k] instanceof Array) - http://jsfiddle.net/08pnu7rx/1/

关于javascript - 在嵌套对象中查找键并替换其值 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50796017/

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