gpt4 book ai didi

javascript - 检查对象 javascript 中是否存在嵌套属性

转载 作者:行者123 更新时间:2023-12-02 17:27:29 24 4
gpt4 key购买 nike

我已经查看了类似问题的一些答案,但是,我想以不同的方式提出我的问题。

假设我们有一个类似 "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;
}

最佳答案

您可以使用Array#every()及其 thisArg,通过迭代键并检查它是否在给定对象中。

var fn = function (o, props) {
return props.split('.').every(k => k in o && (o = o[k], true));
}

console.log(fn({}, "toto.tata")); // false
console.log(fn({ toto: { tata: 17 } }, "toto.tata")); // true
console.log(fn({ toto: { tata: { tutu: 17 } } }, "toto.foo.tata")); // false
console.log(fn({ toto: { tata: false } }, "toto.tata")); // true

关于javascript - 检查对象 javascript 中是否存在嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37019746/

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