当前位置:  开发笔记 > 编程语言 > 正文

Javascript数组包含/包含子数组

如何解决《Javascript数组包含/包含子数组》经验,为你挑选了1个好方法。

我需要检查一个数组是否包含另一个数组.子阵列的顺序很重要,但实际的偏移并不重要.它看起来像这样:

var master = [12, 44, 22, 66, 222, 777, 22, 22, 22, 6, 77, 3]; 

var sub = [777, 22, 22]; 

所以我想知道是否master 包含以下内容sub:

if(master.arrayContains(sub) > -1){
    //Do awesome stuff
}

那怎样才能以优雅/高效的方式完成呢?



1> Nina Scholz..:

fromIndex参数的一点帮助

该解决方案在索引上具有闭包,用于在数组中搜索元素的开始位置.如果找到子数组的元素,则搜索下一个元素将以递增的索引开始.

function hasSubArray(master, sub) {
    return sub.every((i => v => i = master.indexOf(v, i) + 1)(0));
}

var array = [12, 44, 22, 66, 222, 777, 22, 22, 22, 6, 77, 3];

console.log(hasSubArray(array, [777, 22, 22]));
console.log(hasSubArray(array, [777, 22, 3]));
console.log(hasSubArray(array, [777, 777, 777]));
console.log(hasSubArray(array, [42]));
推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有