var array1=['1','2','3','4'];
var array2=['1,2,3,4,5','1,2,3,6','1,7,8,9'];
比較這兩陣列。
我試試這個代碼:
for (var i = 0; i < array1.length; i++) {
for (var j= 0; j< array2.length; j++) {
if()
--------
}
}
前手感謝
var array1=['1','2','3','4'];
var array2=['1,2,3,4,5','1,2,3,6','1,7,8,9'];
比較這兩陣列。
我試試這個代碼:
for (var i = 0; i < array1.length; i++) {
for (var j= 0; j< array2.length; j++) {
if()
--------
}
}
前手感謝
嘗試用join(',')
和includes()
方法。
更新
返回與匹配參數
使用Array#reduce
它的幫助下比賽的array1
參數每一個
var array1 = ['1','2', '4'];
var array2 = ['1,2,3,4,5', '1,2,3,6', '1,7,8,9'];
var res = array2.reduce(function(a, b) {
array1.forEach(function(val) {
if (b.includes(val) && !a.includes(b)) {
a.push(b);
}
})
return a;
}, [])
console.log(res);
console.log(res.length > 0)
非常感謝你的工作。但我想問一個問題。爲什麼這個腳本會顯示真或假? –
如果模式位於字符串中某處,則不起作用。你需要使用indexOf並檢查零。 –
如果我更改var array1 = ['1','2','3'];結果將顯示錯誤,但它仍然在array2 –
您可以檢查array1
的每個值與array2
的拆分項的任何值。
ES5
var array1 = ['1', '2', '3', '4'],
array2 = ['1,2,3,4,5', '1,2,3,6', '1,7,8,9'],
check = array2.some(function (c) {
return array1.every(function (b) {
return function (a, i) {
return a === b[i];
};
}(c.split(',')));
});
console.log(check);
ES6
var array1 = ['1', '2', '3', '4'],
array2 = ['1,2,3,4,5', '1,2,3,6', '1,7,8,9'],
check = array2.some(c => array1.every((b => (a, i) => a === b[i])(c.split(','))));
console.log(check);
抱歉,當我粘貼你的腳本我得到這個標誌錯誤=> –
@happytola,爲什麼你可以使用包括但不是箭頭功能? –
@NinaScholz也許這是另一個「錯誤」 - 在問題的細節上位低一些。 –
你在找什麼結果呢? –
如果這是您在問題標題中說的話,那麼您的第二個數組不是多維數組。只是一個正常的字符串數組。另外,這不是'jQuery',而是'JavaScript'。和比較可能意味着多種事物... – Ionut
應該比較什麼?你期望什麼結果?爲什麼? –