在数组中查找与另一个数组中的任何项匹配的项

时间:2015-09-29 13:59:04

标签: javascript arrays regex

我们说我有一个字符串数组

words = ["quick", "brown", "fox"]

和另一个字符串数组

animals = ["rabbit", "fox", "squirrel"]

我正在寻找能够返回words中任何匹配项索引的函数。像这样:

words.findMatches(animals) // returns 2, the index at which "fox" occurs

2 个答案:

答案 0 :(得分:2)

要添加到tetta的答案 - 我只是过滤掉了不匹配(-1),因此返回的数组只包含匹配的索引。

var words = ["quick", "brown", "fox"];
var animals = ["rabbit", "fox", "squirrel"];

function getMatches(array1, array2) {
  var result = array1.map(function (el) {
    return array2.indexOf(el);
  });

  result.filter(function (el) {
    return el !== -1
  });

  return result;
}

console.log(getMatches(animals, words));

链接数组方法可以实现同样的目标:

function getMatches(array1, array2) {
  return array1.map(function (el) {
    return array2.indexOf(el);
  }).filter(function (el) {
    return el !== -1
  });
}

console.log(getMatches(animals, words));

答案 1 :(得分:1)

尝试这种方法。它将输出[-1,2,-1]。您可以根据需要使用它。



{{1}}