javascript - 将字符串数组与另一个字符串数组进行比较的优雅方法

标签 javascript arrays loops

问题:如何优雅地将一个字符串数组与另一个字符串数组进行比较,从而返回一个不匹配的字符串数组

var master = ['1','2','3','4']
var versioned = ['1a','2','3b','4']
var errorLog = []
var count = 0;
//this for loop doesn't work :(
for(var i = 0; i < versioned.length - 1; ++i ){
    for(var j = 0; j < master.length -1; ++j){
        if(versioned[i] === master[j]){
            console.log('cleared');
        }
        if(count === master.length){
            errorLog.push(versioned[i]);
        }
    }
}

循环将返回 ['1a', '3b'];

我感觉像filter()map()reduce()我会这样做,但我无法正确地解决这个问题。

最佳答案

var master = ['1','2','3','4'];
var versioned = ['1a','2','3b','4'];

function diff(needle, haystack){
  return needle.filter(function(item){
    return !~haystack.indexOf(item); 
  });
}

console.log(diff(versioned, master)); //["1a", "3b"];

~ 注意任何数字都等于 -(x + 1)。所以 ~-1 变成 0,这是唯一的假。

~master.indexOf(item)master.indexOf(item) !== -1

相同

关于javascript - 将字符串数组与另一个字符串数组进行比较的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917067/

相关文章:

javascript - 关闭第二个模态后焦点错误

arrays - 将数据库中现有的字符串字段类型转换为数组字段类型 | Rails + PostgreSQL

c - 使用 while 循环理解文件 I/O

android - 将数组 Gson 提取为 JSON

python - 加速 Python While 循环

javascript - 从树型对象数组Javascript中获取所有子记录

javascript - 相对于点javascript放置对象

javascript - 来自 jquery ajax 的 Rest api 调用给出错误 403 Forbidden

javascript - 水平对齐 Chart.js y 轴

JAVA在多行输出上反转字符串