例如,如果我需要我的代码在数组列表中包含某组数字以便发生什么呢?例如这个数组[1,3,4,5,9]。有什么方法可以检查并查看一个数组是否同时包含所有这些整数并以相同的顺序?
答案 0 :(得分:1)
var arraySearch = function (subArray,array ) {
var i = -1;
return subArray.every(function (v) {
if(i != -1) {
i++;
return (array.indexOf(v) === i)
}
i = array.indexOf(v);
return i >= 0;
});
};
var arr = [1,3,4,5,9];
console.log(arraySearch([4,5],arr))
答案 1 :(得分:0)
{1,3,4,5,9}
不是数组。在这方面,它在Javascript中无效。
myArray = [1,3,4,5,9]
是一个数组。您可以使用myArray.length
检查其包含的元素数量。
有什么方法可以查看并查看数组是否包含所有这些内容 整数和同一顺序?
为此,您必须提供自己的一些代码并显示您首先尝试过的内容。
答案 2 :(得分:0)
<强>基本强>
要检查数组是否只包含一次元素,
您可以简单地检查indexOf
和lastIndexOf
是否产生完全相同的值并且大于或等于零。
var array = [1,2,3,3,3];
function isContainOnce(array,num){
return array.indexOf(num)>=0 && array.indexOf(num)==array.lastIndexOf(num)
}
// Try it
isContainOnce(array,3); // false
isContainOnce(array,10); // false
isContainOnce(array,1); // true
现在您可以迭代检查此类元素的出现次数
function isContain(arr,sub){
var subArray = sub.slice();
var k = null;
while (subArray.length>0){
var s = subArray.shift(); // Take the first element to test
var i = arr.indexOf(s);
var j = arr.lastIndexOf(s);
if (i<0 || i!=j) return false; // Does not exist once
if (k && i-k!=1) return false; // Not in order
k = i;
}
return true;
}
检查[1,3,4,5,9,10,11,11]
是否包含子数组[1,3,4,5,9]
,其中所有元素的顺序相同:
isContain([1,3,4,5,9,10,11,11], [1,3,4,5,9]); // TRUE
其他情况
isContain([1,3,4,5,9,10,11,11], [5,9,10]); // TRUE
isContain([1,3,4,5,9,10,11,11], [2,3]); // FALSE
isContain([1,3,4,5,9,10,11,11], [10,11]); // FALSE because 11 occurs twice
答案 3 :(得分:-1)
如果是完全匹配的话:
{{1}}
如果你要搜索的数字是数组的子集,可能中间有额外的数字,你必须遍历元素。