我需要找到一個數組中是否包含了另一個數組或不是另一個數組..如何檢查數組包含在javascript
var array = ['a',['b','c','d']];
IM無法找到。所以任何人都可以幫我解決這個問題。
謝謝。
我需要找到一個數組中是否包含了另一個數組或不是另一個數組..如何檢查數組包含在javascript
var array = ['a',['b','c','d']];
IM無法找到。所以任何人都可以幫我解決這個問題。
謝謝。
您可以使用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']));
thx @Nina Scholz thq重播..其工作正常....請你解釋一下。什麼是「array.some(a => Array.isArray(a))」中的'some'&'a'「 – Nani
它是一個帶[arrow function](https://developer.mozilla)的回調短版本。組織/ EN-US /文檔/網絡/的JavaScript /參考/函數/ Arrow_functions)。該數組的每個項目都會調用該函數,並檢查該項目。如果檢查返回'true',則迭代停止,因爲它搜索單個[truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy)返回值。 –
thq @Nina Scholz ...我的問題解決了 – Nani
你可以試試這個方法:
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)
的回答,您還可以使用陣列find()方法隨着Array.isArray()
返回內部陣列爲好。看下面的例子。
EDIT 在你有與一個以上的內陣列陣列情況下則陣列濾波器()方法會更合適。
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));
的可能的複製[我如何檢查如果一個數組包含在JavaScript對象?(https://stackoverflow.com/questions/237104/how-do-i-check -if-an-array-includes-an-object-in-javascript) –