JavaScript - 检查一个数组是否与第二个数组具有相同的索引

时间:2016-02-14 18:39:22

标签: javascript arrays

我们说我有一个

的对象
var people = [
  {name: 'John'}, // 0
  {name: 'James'}, // 1
  {name: 'Sue'}, // 2
  {name: 'Mary'}, // 3
  {name: 'Will'}, // 4
  {name: 'Lukas'}, // 5
  {name: 'Sam'} // 6
];

然后我有这个数组:var history = [0, 2, 4, 6]; // we have John, Sue, Will and Sam

使用Lodash或常规JavaScript,如果在true数组中找到输入的值,如何让它返回falsehistory[]

例如,isInHistoryArray(5)会返回false,但isInHistoryArray(2)会返回true

3 个答案:

答案 0 :(得分:2)

您可以使用“includes'方法

history.includes(5) // false
history.includes(0) // true

答案 1 :(得分:2)

例如

你在小游戏中有一系列玩家:

var people = [
  {name: 'John'},
  {name: 'James'},
  {name: 'Sue'},
  {name: 'Mary'},
  {name: 'Will'},
  {name: 'Lukas'},
  {name: 'Sam'}
];

你有......实际联系人的阵列:

var history = [0, 2, 4, 6];

好的,我们可以说这两个容器都在全球范围内让您感到舒适。

您可以通过此功能体

进行检查
function checkHistory(a){
for(var i = 0; i < history.length; i++){
   if(history[i] === a) return true;
}return false;}

答案 2 :(得分:1)

数组有一个indexOf方法,可以将你提供的内容与数组中的条目进行比较(使用严格比较,===)并告诉你第一个匹配的索引,或-1(具体而言) )如果没有匹配。所以:

function isInHistoryArray(value) {
    return history.indexOf(value) !== -1;
}

在ES2015中,还有Array.findArray.findIndex(两者都可以在较旧的引擎上进行多种填充),可以让您提供谓词回调,但是您不需要这样做您的输入是数字,您检查的内容也是数字。