在javascript对象中创建深层嵌套的键/属性

时间:2018-11-13 00:26:16

标签: javascript object key

当您尝试在不存在的键中创建嵌套键时,如下所示:

$$i

您收到一个错误:“无法读取未定义的属性'key2'” 我正在尝试编写一个函数,该函数将查找前面的键是否不存在并将创建它,以便不会引发此错误。尽管我不知道如何“可变化”关键参考,但我遇到了一个问题。

var x = {}
x['key1']['key2'] = 1

我需要先执行循环function deepmake(obj, prop, keyarr) { let holder = `obj['${keyarr[0]}']`; for (let i = 1; i < keyarr.length; i++) { let fun = Function(` let holder = ${holder} let obj = ${obj} let prop = ${prop} let keyarr = ${keyarr} if(${holder}.hasOwnProperty(${keyarr[i]})){ //problem here, string literal is not valid holder+=\`['${keyarr[i]}']\` } else if(i===keyarr.length-1){ ${holder}[keyarr[i]] = prop return obj } else { holder+=\`['${keyarr[i]}']\` ${holder} = {} // undefined key is created here, string also not valid }`); fun(); holder += `['${keyarr[i]}']` } } ,然后执行obj[key[0]],依此类推。如果基于密钥的数量,我不能有条件地陈述,因为可能有100多个。

0 个答案:

没有答案