我需要帮助设计一个函数,该函数将返回 Javascript 中两个字符串数组之间的差异(jQuery 也是可以接受的)。
我基本上是在寻找一个计算数组 A减去B的函数。
所以如果我们有以下“
A = ['伊斯坦布尔', '香港', '柏林']; B = ['柏林', '波恩'];
调用diff = minus(A,B)
结果应diff
填充以下值['Istanbul', 'Hong Kong']
我不想使用像JS Set
.
请帮忙提出建议...
我需要帮助设计一个函数,该函数将返回 Javascript 中两个字符串数组之间的差异(jQuery 也是可以接受的)。
我基本上是在寻找一个计算数组 A减去B的函数。
所以如果我们有以下“
A = ['伊斯坦布尔', '香港', '柏林']; B = ['柏林', '波恩'];
调用diff = minus(A,B)
结果应diff
填充以下值['Istanbul', 'Hong Kong']
我不想使用像JS Set
.
请帮忙提出建议...
function diff(A, B) {
return A.filter(function (a) {
return B.indexOf(a) == -1;
});
}
最快的可能是常规循环
var A = ['Istanbul', 'Hong Kong', 'Berlin'],
B = ['Berlin', 'Bonn'],
C = [];
for (var i=A.length; i--;) {
if (B.indexOf(A[i]) === -1)
C.push(A[i]);
}
console.log(C);
最优雅的是基于意见的,但类似
var A = ['Istanbul', 'Hong Kong', 'Berlin'],
B = ['Berlin', 'Bonn'];
var C = A.filter(x => !B.includes(x));
console.log(C);
这里:
var minus = function ( a, b ) {
return a.filter(function ( name ) {
return b.indexOf( name ) === -1;
});
};
现场演示:http: //jsfiddle.net/SjF9p/