【发布时间】:2016-08-29 10:05:12
【问题描述】:
我已经查看了此类问题的一些答案,但是,我想以不同的方式提出我的问题。
假设我们有一个类似 "level1.level2.level3. ..." 的字符串,它表示一个名为 Obj 的对象中的嵌套属性。
关键是我们可能不知道这个字符串中有多少嵌套属性。例如,它可能是“level1.level2”或“level1.level2.level3.level4”。
现在,我想要一个将 Obj 和属性字符串作为输入的函数,只需告诉我们对象中是否存在这样的嵌套属性(让我们说 true 或 false 为输出)。
更新: 感谢@Silvinus,我找到了稍作修改的解决方案:
private checkNestedProperty(obj, props) {
var splitted = props.split('.');
var temp = obj;
for (var index in splitted) {
if (temp[splitted[index]] === 'undefined' || !temp[splitted[index]]) return false;
temp = temp[splitted[index]];
}
return true;
}
【问题讨论】:
-
@Pedram,您想获得有关每个属性存在的“报告”还是仅针对大多数(最后)嵌套的属性?
-
@RomanPerekhrest 事实上,最多(最后)一个。但是,很明显,如果这些属性中的每一个都不存在,那么最后一个也不存在:)
-
我想知道为什么我的问题应该被否决!
标签: javascript object properties nested