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