根据项目的属性在javascript对象中查找项目

时间:2018-04-30 23:04:42

标签: javascript arrays loops object multidimensional-array

说我有这样一个对象:

var things = { 
    "First Item": {"name": "First Item", "url":"firstitem" },
    "Second Item": {"name": "Second Item", "url":"seconditem" }
};

我希望能够检查是否有任何对象值的url值为“firstitem”,如果是,则检索与该项关联的所有值(对于“name”和“url”)。如何制作循环来实现这一目标?

2 个答案:

答案 0 :(得分:1)

print(String(data:data, encoding:.utf8)!)

答案 1 :(得分:1)

有两种方法可以循环使用它。您可以使用foreach方法:

for (var key in things) {
    things[key].url; // do thing with this
}

或Object.keys方法

Object.keys(things); // Returns an array of ["First Item", "Second Item"]

我更喜欢第二种,因为对于您的用例,您可以这样做:

Object.keys(things).find(elem => things[elem].url === "seconditem");

如果找不到,则会返回undefined,或者在上述情况下,它会返回{"name": "Second Item", "url": "seconditem" }
您还可以使用findIndex代替find,它将获取Object.keys()

返回的数组中的索引

更多详情: