说我有这样一个对象:
var things = {
"First Item": {"name": "First Item", "url":"firstitem" },
"Second Item": {"name": "Second Item", "url":"seconditem" }
};
我希望能够检查是否有任何对象值的url值为“firstitem”,如果是,则检索与该项关联的所有值(对于“name”和“url”)。如何制作循环来实现这一目标?
答案 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()
更多详情:
Object.keys()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys Array.prototype.find()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find Array.prototype.findIndex()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex