[英]Get first property of an object that matches the condition
所以我有一个这样的结构:
Foo: {
A: Array[0],
B: Array[0],
C: Array[1]
}
其中[X]
是数组的长度,但是Foo
是对象,而不是Array,因此我不能在其上使用Array方法。
如何获取length > 0
第一个元素(在这种情况下为字母)?
for (let letter in Foo) {
if (letter.length > 0) {
let match = letter;
}
}
我尝试过这样的事情(这是简化版本),但它只返回Foo
所有属性。
我很高兴您正在使用ES6。 在这种情况下,可以使用Object.keys
获取所有对象键的数组,并使用Array.prototype.find
查找具有特定属性的第一个元素:
var obj = {
a: [],
b: [],
c: [
2,
3
],
d: [],
e: [
1
]
};
Object.keys(obj).find(a => obj[a].length > 0); // The letter "c" which contains the first non-empty array.
obj[Object.keys(obj).find(a => obj[a].length > 0)]; // Array [2, 3] itself
请注意,跨实现的对象中没有一致的“第一个”元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.