javascript - 比较在 Javascript 中不起作用的 2 个数组的值
问题描述
我试图在两个数组之间进行比较,无论它们在同一个地方具有相同的值,在不同的地方具有相同的值还是根本不一样。比较后我想输入一个字符到第三个数组来表示结果。我的代码由于某种原因不起作用......它没有正确比较。我究竟做错了什么?
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 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' ]
推荐阅读
- php - 如何更新购物篮并更改多维数组中的产品数量?
- traefik - 如何在本地在 Traefik 上设置 HTTPS?
- c# - 当其他 TextBox TextChanged 在同一列表框项 WPF 内触发时,从 ListBox 项更新 TextBox 文本
- html - 如何为生产代码设置锚标签链接?
- c - 在同一个 .c 文件中写入和读取时,fscanf 不会读取文本文件中的所有值
- c - 给定一个 BST,打印不同节点对的所有可能组合
- typescript - 打字稿:如何使类型系统根据输入使用准确地确定输出类型
- c - 按升序对文本文件进行排序
- angular - 我们是否允许在 ngStyle 调用的函数中将 $event 作为参数传递?
- php - PHP 8:如何在属性中声明关联数组