javascript - 检查数组中的任何对象是否包含另一个数组中列出的属性

标签 javascript arrays ecmascript-6

我已经尝试了一些解决方案,并在这里查看了一下,但似乎无法正常工作。

我有 2 个数组,想要检查数组中的任何项目是否包含另一个数组中的任何字符串。

const stepsShown = ["ref2", "ref7"];
const items = [
{ name: "item1", element: "ref1"},
{ name: "item2", element: "ref2"}
];
const refsExist = items.some((r) =>{stepsShown.indexOf(r.element);});

在此示例中,我希望 refsExisttrue

我觉得我的语法有点困惑!有人可以帮忙吗? :)

最佳答案

你的说法几乎是正确的,只是你需要测试非 -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/

相关文章:

javascript - 给定相同键/值的关联数组中的连接值

PHP设置动态数组索引

javascript - 如何在react/redux应用程序中重用函数?

javascript - 将鼠标滚轮/滚动事件从一个 div 转移到另一个 div

javascript - JQuery:查找其类包含变量值的元素

javascript - 根据 HTML/JavaScript 中的单选按钮选择更改图像

java - Switch 语句和字符串

javascript - 错误: Trying to print out array elements in React Function Component?

javascript - 在 ReactJS 中为复选框选择限制功能添加最小值和最大值

javascript - 为什么在新实例上调用方法?