Javascript 检查字符串是否在两个数组中的任何一个中

标签 javascript

我正在为这个而烦恼。我有两个数组,likesdislikes,每个都填充了大约 50 个字符串。

我还有一个 JSON 对象,data.results,它包含大约 50 个对象,每个对象都有一个 _id 参数。

我正在尝试检查 data.results不是 likesdislikes 的所有对象

这是我目前的代码:

var newResults = []
      for(var i = 0; i<data.results.length; i++){
        for(var x = 0; x<likes.length; x++){
          if(!(data.results[i]._id == likes[x])){
            for(var y = 0; y<dislikes.length; y++){
                if(!(data.results[i]._id == dislikes[y])){
                  newResults.push(data.results[i]);
                  console.log("pushed " + data.results[i]._id);
                }
                else
                {
                   console.log("They already HATE " + data.results[i]._id + " foo!"); //temp
                }
            }
          }
          else
          {
             console.log(data.results[i]._id + " is already liked!"); //temp
          }
        }
      }

如您所见,我正在遍历所有 data.results 对象。然后我检查他们的 _id 是否在 likes 中。如果不是,我会检查它是否在 dislikes 中。然后,如果仍然不是,我将其推送到 newResults

正如您看到的那样,这段代码目前每次迭代都会将结果推送到我的数组中一次,所以我最终得到了一个包含大约 600 个对象的庞大数组。

实现此目标的简单好方法是什么?

最佳答案

for (var i = 0; i < data.results.length; i++) {
    isInLiked = (likes.indexOf(data.results[i]) > -1);
    isInHated = (dislikes.indexOf(data.results[i]) > -1);
    if (!isInLiked && !isInHated) {
        etc...
    }
}

关于Javascript 检查字符串是否在两个数组中的任何一个中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945527/

相关文章:

javascript - 从 Express 后端下载 .csv 到 Angularjs

javascript - 使用隐藏属性与有条件地渲染组件

javascript - Node js 中内部文本的结果

javascript - 为什么 fs.readFile 返回一个缓冲区?

javascript - 在 javascript 警报中使用文本框值

javascript - 如何使用 JavaScript 数组通过 for 循环一次性检索 JSON 对象的值

Javascript slider : How to set default opacity on page load

javascript - 论据是什么?

javascript - jQuery 将对象添加到动态父对象

本地存储中的 JavaScript 数组