【发布时间】:2018-01-24 08:00:54
【问题描述】:
这里我有一个问题(下面的示例代码)。如何摆脱未定义的? 就我而言,我只能使用一个变量,例如
object[dynamicKey]
但如果关键在对象中更深,那么第一级我会出错。
object = {
name: 'peter',
kidsNames: {
name: 'carlos',
}
}
dynamicKey1 = 'name';
dynamicKey2 = 'kidsNames.name';
console.log(object[dynamicKey1]); // 'peter'
console.log(object[dynamicKey2]); // undefined ???
我想要一个纯 JavaScript 的解决方案
解决方案:
感谢您的帮助!
在你们的帮助下,我想出了如下解决方案:
const getProp = (obj, prop) => {
return prop.split('.').reduce((r, e) => {
return r[e];
}, obj);
};
getProp(object, dynamicKey2) // 'carlos'
所以现在无论你需要深入到多深的对象,它总是会给你正确的价值。
【问题讨论】:
-
object['kidsNames']['name']。您必须使用多维数组语法 -
@ErrorinException OP 想要通过字符串访问属性,这是行不通的。
-
根本不可能。没有评估
-
@ErrorinException 差不多。还有其他方法。我展示了一个让某人生气的:D
标签: javascript