我已经尝试了一些解决方案,并在这里查看了一下,但似乎无法正常工作。
我有 2 个数组,想要检查数组中的任何项目是否包含另一个数组中的任何字符串。
const stepsShown = ["ref2", "ref7"];
const items = [
{ name: "item1", element: "ref1"},
{ name: "item2", element: "ref2"}
];
const refsExist = items.some((r) =>{stepsShown.indexOf(r.element);});
在此示例中,我希望 refsExist
为 true
我觉得我的语法有点困惑!有人可以帮忙吗? :)
最佳答案
你的说法几乎是正确的,只是你需要测试非 -1
值,并且你的箭头函数不应该有括号。
如果您的箭头函数由单个表达式组成,则不需要括号:
items.some(r=>stepsShown.indexOf(r.element)!=-1);
如果您的箭头函数包含语句或多个表达式,则需要大括号。使用大括号时,必须包含显式的 return
语句。
items.some(r=>{
for(some;thing;) { ... }
return otherThing;
});
您可以简单地使用 includes
,而不是依赖可读性较差的 .indexOf(..)!=-1
测试:
items.some(r=>stepsShown.includes(r.element));
关于javascript - 检查数组中的任何对象是否包含另一个数组中列出的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45925492/