在javascript中比较数组索引的最佳方法是什么?

时间:2018-08-07 21:07:25

标签: javascript arrays sorting web-applications

我正在尝试比较数组的索引。但是,我不确定我是否会正确处理。我的想法是:

let tempArray = [tempInfo1,tempInfo2];

if(tempArray[0] == tempArray[1]){
    console.log('true');
}else{
    console.log('false');
}

我朝着正确的方向前进吗?还是完全关闭了?

本质上-我正在尝试制作“匹配游戏”。单击一个元素可将该元素存储在tempArray(tempInfo1)中,单击第二个元素可将第二个值存储在该数组中(tempInfo2)。然后,我试图检查值是否相同-做点什么。如果没有做其他事情。这有帮助吗?

3 个答案:

答案 0 :(得分:1)

向正确的方向前进

您可能正在处理4x4的元素。

让我们说一个元素看起来像这样

HTML

<div id="card" value="cat"></div>

JavaScript

let lastSelected = null;
document.getElementById('card', (event) => {
    if(event.target.value === lastSelected.value){
      // remove both elements
    } else {
      lastSelected = event.target
    }
});

答案 1 :(得分:0)

首先,如注释中所述,您正在比较值。索引只是0、1、2、3、4 ...如果您知道索引中可能包含的内容,则可以选择。

实际上,如果您要比较对象(和对象的特殊类型的数组),这可能会失败。

想象一下:

  var arrayOfDifferentTypes = [
  {
    somekey: "value"
  },
  {
    somekey: "value"
  },
  [1, 2, 3, 4],
  [1, 2, 3, 4],
  "data",
  "data",
  18,
  18
];

console.log(arrayOfDifferentTypes[0] === arrayOfDifferentTypes[1]); // false
console.log(arrayOfDifferentTypes[2] === arrayOfDifferentTypes[3]); // false
console.log(arrayOfDifferentTypes[4] === arrayOfDifferentTypes[5]); // true
console.log(arrayOfDifferentTypes[6] === arrayOfDifferentTypes[7]); // true

如您所见,它将失败。 您可以检查thisthis one进行这种比较。

答案 2 :(得分:0)

您没有在比较数组的索引,而是根据您的描述,您正在尝试制作匹配游戏,该游戏匹配数组中的前两个值,然后 ,您的方向正确,但是使用 === 而不是 == 来比较值。

相关问题