1 回答
![?](http://img1.sycdn.imooc.com/5458689e000115c602200220-100-100.jpg)
TA贡献1799条经验 获得超8个赞
您正在寻找some方法:
return superhero.group &&
superhero.group.items &&
superhero.group.items.some(({id}) => id === "1517");
或者如果您在 ES5 中需要它:
return superhero.group &&
superhero.group.items &&
superhero.group.items.some(function(item) {
return item.id === "1517";
});
some为数组中的每个条目调用一次回调,并true在回调第一次返回真值时返回,或者false在回调从未返回真值时返回(包括数组中根本没有条目)。也就是说,它检查数组中的“某些”(实际上是“任何”)项是否与回调表示的谓词匹配。
这是条件为真和为假时的示例(在 ES2015+ 中):
function check(superhero) {
return superhero.group &&
superhero.group.items &&
superhero.group.items.some(({id}) => id === "1517");
}
function test(superhero, expect) {
const result = check(superhero);
console.log(`Checking ${JSON.stringify(superhero)}: ${result} <= ${!result === !expect ? "OK" : "ERROR"}`);
}
test({group: {items: [{id: "1"}, {id: "1517"}, {id: "9999"}]}}, true);
test({group: {items: [{id: "1"}, {id: "2"}, {id: "3"}]}}, false);
¹“真值”——“真”值是指任何不“假”的值。甲falsy值是一个值,该值的计算结果为false作为一个条件(如使用时if (x))。虚假值是0, "", null, undefined, NaN, 当然还有false。
添加回答
举报