我需要检查一个数组是否包含另一个数组。子数组的顺序很重要,但实际偏移量并不重要。它看起来像这样:
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
}
那么如何以优雅/高效的方式完成呢?
原文由 Victor Axelsson 发布,翻译遵循 CC BY-SA 4.0 许可协议
在
fromIndex
参数的帮助下该解决方案的特点是对索引进行闭包,用于在数组中搜索元素的起始位置。如果找到子数组的元素,则从递增的索引开始搜索下一个元素。