我正在为这个而烦恼。我有两个数组,likes
和 dislikes
,每个都填充了大约 50 个字符串。
我还有一个 JSON 对象,data.results
,它包含大约 50 个对象,每个对象都有一个 _id
参数。
我正在尝试检查 data.results
中不是 likes
和 dislikes 的所有对象
。
这是我目前的代码:
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/