Javascript - 检查数组中是否存在 2 个项目

标签 javascript arrays

在 Javascript 中,如何确保年龄数组具有两个年龄 1018而且不止一个。

var ages = [3, 10, 18, 20];
ages.filter(age => age === 10 || age === 18); // returns 10 and 18
ages.filter(age => age === 10 && age === 18); // returns null

&&不确保两者都存在,因为它返回 null 。我知道我可以使用 2 个不同的 ages.find/filter并检查合并结果,但我想知道是否有一种更优雅的方法可以在单个语句中执行此操作。

澄清一下,在 ages数组,如果我检查 10 (存在)和21 (不存在),它应该返回 nullfalse ,因为其中之一不存在。

最佳答案

您必须使用includes函数:

var ages = [3, 10, 18, 20];
console.log(ages.includes(10) && ages.includes(18));

另一种方法是使用 indexOf 方法:

arr.indexOf(searchElement)

arr.indexOf(searchElement, fromIndex)

var ages = [3, 10, 18, 20];
console.log(ages.indexOf(10)!=-1 && ages.indexOf(18)!=-1);

findIndex 是您可以使用的另一种方法。它的操作类似于 indexOf,但有一些区别:

Array.prototype.indexOf()需要一个值作为参数。这对于基本类型的数组非常有用,例如 NumberStringBoolean

Array.prototype.findIndex()有一个回调函数作为第一个参数。当您有对象数组时,这特别有用。

var ages = [3, 10, 18, 20];
var bool=ages.findIndex(a=>a==10)!=-1 && ages.findIndex(a=>a==18)!=-1;
console.log(bool);

关于Javascript - 检查数组中是否存在 2 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41782252/

相关文章:

c++ - 新表达式会返回一个指向数组的指针吗?

c++ - 使用指针跨越 INTEGER 数组中的所有元素

javascript - 如何使用 JSON 在 angularjs 中创建双向绑定(bind)?

javascript - Node Js :Displaying images in mongodb and nodeJS gives broken image

javascript - Javascript 中的深平面多维数组

arrays - 关于顺序和重复唯一地组合数组项

javascript - 从 .each 循环中的 javascript 数组获取 "undefined"

c - 生成6个随机数时如何检查确保没有重复?

Javascript 数组推送子数组

javascript - 图像由我想在 html 文件中单独复制的小图像组成