gpt4 book ai didi

Javascript 数组包含/包含子数组

转载 作者:数据小太阳 更新时间:2023-10-29 04:33:23 25 4
gpt4 key购买 nike

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

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
}

那么如何以一种优雅/高效的方式做到这一点呢?

最佳答案

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]));

关于Javascript 数组包含/包含子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34151834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com