繁体   English   中英

看看一个数组是否包含其他嵌套数组的所有数字以及JavaScript?

[英]See if an array contains all the number from other nested arrays with JavaScript?

我有一个数组,称为winingNumbers。 我需要测试其他数组(userOneNumers和userTwoNumers)以查看它们是否包含所有winingNumbers嵌套数组中的所有数字。

const userOneNumers = [1,2,4,5];
const userTwoNumers = [1,2,3,6];

const winingNumbers = [
  [1,2,3],
  [4,5,6]
];

在此示例中,userOneNumers应该返回false,但是userTwoNumers应该返回true。

为了明确起见,要返回true,数组必须包含1,2,3或4,5,6的ALL。 如果一个数组有一些数字,例如1,2,4,那么它应该返回false。

同样,要测试的数组可以具有其他数字,例如8,9,1,2,3,7,但仍应返回true。

您可以取一个集合并与以前检查相同长度的数组进行比较。

 function check(a, b) { var bb = new Set(b); return a.some(aa => aa.length === b.length && aa.every(aaa => bb.has(aaa))); } const userOneNumers = [1, 2, 4, 5]; const userTwoNumers = [1, 2, 3]; const winingNumbers = [[1, 2, 3], [4, 5, 6]]; console.log(check(winingNumbers, userOneNumers)); // false console.log(check(winingNumbers, userTwoNumers)); // true 

在对问题进行编辑后进行编辑,而无需进行长度检查,只需对照给定值检查内部数组即可。

 function check(a, b) { var bb = new Set(b); return a.some(aa => aa.every(aaa => bb.has(aaa))); } const userOneNumers = [1, 2, 4, 5]; const userTwoNumers = [1, 2, 3, 6]; const winingNumbers = [[1, 2, 3], [4, 5, 6]]; console.log(check(winingNumbers, userOneNumers)); // false console.log(check(winingNumbers, userTwoNumers)); // true 

暂无
暂无

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

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