gpt4 book ai didi

javascript - 通过传递带有路径和值的字符串来扩展 JavaScript 对象

转载 作者:行者123 更新时间:2023-11-29 19:55:39 24 4
gpt4 key购买 nike

有没有一种通过传递字符串和值来扩展 JavaScript 对象的简单方法?

基本上我需要这样的东西:

myObject = {}

var extendObj = function(obj, path, value){
}

var path = "a.b.c", value = "ciao";
extendObj(myObject, path, value);


console.log(myObject.a.b.c) //will print "ciao"

最佳答案

myObject = {};

var extendObj = function (obj, path, value) {
var levels = path.split("."),
i = 0;

function createLevel(child) {
var name = levels[i++];
if(typeof child[name] !== "undefined" && child[name] !== null) {
if(typeof child[name] !== "object" && typeof child[name] !== "function") {
console.warn("Rewriting " + name);
child[name] = {};
}
} else {
child[name] = {};
}
if(i == levels.length) {
child[name] = value;
} else {
createLevel(child[name]);
}
}
createLevel(obj);
return obj;
}

var path = "a.b.c",
value = "ciao";
extendObj(myObject, path, value);


console.log(myObject.a.b.c) //will print "ciao"

http://jsfiddle.net/DerekL/AKB4Q/

enter image description here

您可以在控制台中看到它根据您输入的路径创建了路径。

关于javascript - 通过传递带有路径和值的字符串来扩展 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16182141/

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