[英]Comparing between values of 2 arrays not working in Javascript
我試圖在兩個數組之間進行比較,無論它們在同一位置具有相同的值,在不同位置具有相同的值還是根本不相同。 比較后我想輸入一個字符到第三個數組來指示結果。 我的代碼由於某種原因不起作用......它沒有正確比較。 我究竟做錯了什么?
var numInput = [1,2,3,4];
var numArr = [2,5,3,6];
var isBp;
var i,j;
for ( i = 0; i < 4; i++)
{
if (numInput[i] == numArr[i])
{ isBP[i] = "X"; }
else
{
for ( j = 0; j<4; j++)
{
if (numInput[i] == numArr[j])
{isBP[i] = "O";}
else
{ isBP[i] = "-"; }
}
}
}
結果應該是:
isBP = [O,-,X,-]
這是一個相當簡單的數組映射操作。 如果我理解正確,當它們匹配時需要一個X
當它們不匹配時需要一個O
並且根本不存在-
當它存在但在不同的位置時
var numInput = [1,2,3,4]; var numArr = [2,5,6,4]; var isBP = numInput.map((n,i) => ((n === numArr[i] ? 'X' : numArr.includes(n) ? '-': 'O'))) console.log(isBP)
看起來你想輸出:
如果是這樣的話:
var a1 = [1, 2, 3];
var a2 = [1, 3, 4];
var result = a1.map((n, i) => {
var match = a2.indexOf(n);
if (match === i) {
return "X"
} else if (match > -1) {
return "O";
} else {
return "-";
}
});
console.log(result); // prints [ 'X', '-', 'O' ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.