检查object是否存在于另一个对象中
Check if object exists in another object
我有一个像这样的对象:
var obj = {
heroes: {
"1": {
label: "Spiderman"
},
"2": {
label: "Iron Man"
},
}
}
我想知道的是,在obj.heroes.
中是否存在一个对象,例如2。我试过了,但是没有成功:
var name = "heroes"; //Will be a for-loop later
try {
if(name["2"] in obj)
console.log("There is an 2nd superhero!");
} catch(e) {console.log(e);}
. ."Cannot read property '2' of undefined"
我希望你能帮助我。由于Try
if ("2" in obj[name]){
console.log("There is an 2nd superhero!");
}
但是如果你试图识别计数,最好使用数组
var obj = {
heroes: [
{label: "Spiderman"},
{label: "Iron Man"}
]
}
和
核对if (obj[name].length > 1) {
console.log("There is an 2nd superhero!");
}
你可以这样做:
try {
console.log(obj.heroes["2"]);
} catch (e) {
console.log('nope :c');
}
但是,最好将heroes
存储为数组:
var obj = {
heroes: [
{
label: 'Spiderman'
},
{
label: 'Ironman'
}
]
};
使用数组更有意义,因为heroes
由多个hero
对象组成。
如果第二个超级英雄不存在,则条件返回false。
if(obj.heroes["2"])
console.log("There is an 2nd superhero!");
或:
var count = 0;
for (var x in obj.heroes) {
if (obj.heroes.hasOwnProperty(x)) {
count++;
}
}
console.log("You see "+ count +" heroes.");
这段代码会帮你找到它
var delve = function(object, property, dodge) {
if (!dodge) dodge = object;
for (var i in object) {
if (object[i] === dodge) continue;
if (typeof(object[i]) == typeof({})) this.delve(object[i], property, dodge)
if (i == property) console.log(object[i]);
}
}
delve(heroes,'2')
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 计算从一个对象到另一个对象的路径并沿其移动
- 如何使用 2 个 XMLHttpRequest 一个依赖于另一个
- 有没有一个lodash函数可以合并两个对象并删除其中一个对象的属性(如果它们没有)'不存在于另一个中
- 使计算属性依赖于emberjs中另一个对象的所有属性
- 需要一个类似于“另存为”对话框的解决方案来使用 javascript 选择文件名和位置
- 如何检查一个 JavaScript 对象中的值是否存在于另一个 JavaScript 对象中
- 检查一个对象中的项目是否存在于另一个对象中(使用下划线)
- 在 Javascript 中从一个对象调用另一个对象的私有函数
- 将焦点应用于一个对象,10秒钟后将焦点应用到另一个对象
- 在canvas HTML5中检测对象相对于另一个对象的位置
- 嵌套的重复,一个依赖于另一个
- jQuery.将一个对象插入另一个对象
- 如何在不使用__proto__的情况下使一个对象从另一个对象继承
- 从一个对象创建另一个对象
- 多个选择选项一个依赖于另一个
- 我可以使一个对象与另一个对象具有相同的顺序吗
- 如何检查这些字符串中是否有任何一个存在于另一个字符串中,如果JavaScript中的答案是肯定的,则将其替换
- 在一个对象在另一个对象中声明之前传递它
- 一个对象在另一个对象内部的初始化