我已经尝试了一些解决方案,并且已经在这里看了一下,但似乎无法实现这一点。
我有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
我觉得我的语法有点混乱!有人可以帮忙吗? :)
答案 0 :(得分:3)
你几乎没有,除了你需要测试一个非-1
值,你的箭头函数不应该有括号。
如果您的箭头功能由单个表达式组成,则您不需要括号:
items.some(r=>stepsShown.indexOf(r.element)!=-1);
如果箭头函数包含语句或多个表达式,则需要大括号。使用大括号时,必须包含明确的return
语句。
items.some(r=>{
for(some;thing;) { ... }
return otherThing;
});
您可以简单地使用.indexOf(..)!=-1
:
includes
测试。
items.some(r=>stepsShown.includes(r.element));
答案 1 :(得分:0)
您可以找到一个元素,然后检查它是否未定义
const stepsShown = ["ref2", "ref7"];
const items = [
{ name: "item1", element: "ref1"},
{ name: "item2", element: "ref2"}
];
const refsExist = items.find((r) =>{
return stepsShown.indexOf(r.element)>-1;
});
console.log(refsExist !== undefined);