繁体   English   中英

JavaScript:检查所有数组是否包含相同的值?

[英]JavaScript: Check if all arrays contain same value?

我有以下数组

// Exmaple
[
   ['morning', 'afternoon'],
   ['morning'],
   ['morning', 'afternoon'],
   ['morning', 'afternoon'],
   ['morning']
]

我可能有一个同一个,但是每个下午都有下午。 我需要检查所有数组中是否都存在给定值,例如,如果我检查“ morning”,它应该返回true ,但是如果我检查“ afternoonon”,它应该返回false因为在上面的示例数组中,并非所有数组都具有'下午'

  array.every(day => day.includes("morning")) // true

您可以使用.every().includes()方法:

 let data = [ ['morning', 'afternoon'], ['morning'], ['morning', 'afternoon'], ['morning', 'afternoon'], ['morning'] ]; let checker = (arr, str) => arr.every(a => a.includes(str)); console.log(checker(data, 'morning')); console.log(checker(data, 'afternoon')); 

您可以使用Array.everyArray.includes

 let arr = [['morning', 'afternoon'],['morning'],['morning', 'afternoon'],['morning', 'afternoon'],['morning']]; console.log(arr.every(v => v.includes('morning'))); // true console.log(arr.every(v => v.includes('afternoon'))); // false 

use .every()

 array.every(d => d.includes("morning")) // true
 array.every(d => d.includes("afternoon")) //false

您可以使用Array.prototype.every()并强制booleanArray.prototype.find()的结果,该结果返回满足提供的测试功能的数组中第一个元素的值。 否则返回undefined。

码:

 const data = [['morning', 'afternoon'],['morning'],['morning', 'afternoon'],['morning','afternoon'],['morning']]; const checker = (arr, str) => arr.every(a => !!a.find(a => str === a)); console.log(checker(data, 'morning')); console.log(checker(data, 'afternoon')); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM