![](/img/trans.png)
[英]Javascript: How do I check if an array contains exactly another array?
[英]how to check if array contains an another array in javascript
我需要查找一個數組是否包含另一個數組。
var array = ['a',['b','c','d']];
我無法找到這個。 所以任何人都可以幫我這個忙。
謝謝。
您可以使用Array#some
迭代元素,並使用Array.isArray
檢查該元素是否為數組。
function containsArray(array) { return array.some(item => Array.isArray(item)); } console.log(containsArray(['a', ['b', 'c', 'd']])); console.log(containsArray(['a', 'b', 'c', 'd']));
ES5
function containsArray(array) { return array.some(function (item) { return Array.isArray(item); }); } console.log(containsArray(['a', ['b', 'c', 'd']])); console.log(containsArray(['a', 'b', 'c', 'd']));
您可以這樣嘗試:
var array = ['a',['b','c','d']];
function contains(a, toFind) {
for (var i = 0; i < a.length; i++) {
if (equalArray(a[i], toFind)) {
return true;
}
}
return false;
}
function equalArray(a, b) {
if (a.length === b.length) {
for (var i = 0; i < a.length; i++) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
} else {
return false;
}
}
alert(contains(array, ['b', 'c', 'd']));
如果您不僅需要boolean (true/false)
答案,還可以將Array find()方法與Array.isArray()
一起使用,以返回內部數組 。 請參見以下示例。
編輯如果您的數組中有多個內部數組,則使用array filter()方法會更合適。
var arr = [3, 10, 18, [3, 4, 5, 8], 20]; var arr2 = [3, 10, 18, [3, 4, 5, 8], [1, 2], 20]; var arr3 = [1, 2, 3, 4]; function check(v) { return (Array.isArray(v))?v:false; } console.log(arr.find(check)); console.log(arr2.filter(check)); console.log(arr3.find(check)); console.log(arr3.filter(check));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.