簡體   English   中英

如何檢查數組是否在javascript中包含另一個數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM