代码:
module.exports.set = function (data, key, value) {
if (key.includes(".")) {
let elements = key.split(".");
let element = elements.pop();
let obj = elements.reduce((object, keyy) => {
if (typeof object[keyy] == "undefined") object[keyy] = {};
return object[keyy];
}, data);
obj[element] = value;
return data;
} else {
data[key] = value;
return data;
}
}
我将通过示例向您解释问题。
var obj = {};
set(obj, "hello.world", "test")
console.log(obj)
控制台日志:
{
"hello": {
"world": "test"
}
}
但是如果我写这段代码:
var obj = {
"hello": {
"world": "test"
}
};
set(obj, "hello.world.again", "hello again")
console.log(obj)
对象没有变化。控制台日志将是这样的:
var obj = {
"hello": {
"world": "test"
}
};
我想要这样的结果:
{
"hello": {
"world": {
"again": "test"
}
}
}
在 lodash 模块中,我可以做我所说的事情。但在我的代码中,我不能这样做。请帮助我,我该怎么做?
浮云间
慕村9548890
相关分类