匹配多个数组的值

时间:2017-06-15 11:08:44

标签: javascript arrays for-loop string-matching

我对编码基本了解并希望得到您的帮助。我有这个js代码给了我一个真正的假日志,所有香肠狗出现在数组中:

var myAnimal = "Sausage Dog";
var arrayAnimal =["Sausage Dog", "Tiger", "Sausage Dog", "Crocodile", "Lion"];
for (var i = 0; i < arrayAnimal.length; i++) {
  if(myAnimal == arrayAnimal[i]) {
     console.log("True");
     } else {
       console.log("False");
     }
}

如果var myAnimal是一个包含多个字符串的数组,我将如何执行相同的任务?

因此它会检查myAnimal中每只动物对抗var arrayAnimal中的每只动物,并为所有事件返回一个真/假。

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

这样的事情: 将myAnimal数组循环到arrayAnimal循环内 - 检查它们是否相等。

&#13;
&#13;
var myAnimal =  ["Sausage Dog", "Tiger"];
var arrayAnimal = ["Sausage Dog", "Tiger", "Sausage Dog", "Crocodile", "Lion"];
for (var i = 0; i < arrayAnimal.length; i++) {
     for (var j = 0; j < myAnimal.length; j++) {
     		if(arrayAnimal[i] == myAnimal[j]) console.log('match');
     }
}
&#13;
&#13;
&#13;

答案 1 :(得分:1)

使用myAnimlArray#reduce数组创建字典,然后使用字典Array#map arrayAnimal创建字典。

var myAnimal = ["Sausage Dog", "Lion"];
var myAnimalDict = myAnimal.reduce(function(dict, str) {
  dict[str] = true;
  
  return dict;
}, Object.create(null));

var arrayAnimal =["Sausage Dog", "Tiger", "Sausage Dog", "Crocodile", "Lion"];

var result = arrayAnimal.map(function(str) {
  return !!myAnimalDict[str];
});

console.log(result);

答案 2 :(得分:0)

var myAnimal = ["Sausage Dog", "Tiger", "Sausage", "Crocodile", "Lion"];
var arrayAnimal =["Sausage Dog", "Tiger","Crocodile", "Lion"];
for (var i = 0; i < myAnimal.length; i++) {
    for (var j = 0; j < arrayAnimal.length; j++) {
        if (myAnimal[i] == arrayAnimal[j]) {
          $('#demo').append("True</br>");
        }
    }
}