84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
var a = [1,2,3,4,5,6];var b = [2,3,6];Array b ist eine Teilmenge von Array a und schließlich die Elemente, die b enthalten Was sind die besten Optionen?
https://lodash.com/docs/4.17....
function diff(a1, a2) { return a1.concat(a2).filter(function (val, index, arr) { return arr.indexOf(val) === arr.lastIndexOf(val); }); }
function diff2(a1, a2) { return a1.filter(val => { return a2.indexOf(val) === -1; }) }
使用Array的filter方法就可以解决你的问题,具体实现很简单,别人也有回答。
filter
如果你不介意引用第三方库,那么推荐你引入lodash,这个库包含了大量处理数组的方法,如果你对数组操作场景比较多,强烈推荐使用。
它有个函数专门处理这个问题,叫做difference. 当然了,前面有个同学说用without也可以,只不过用起来没有difference方便。
下面代码中的"_"是引入lodash后一个默认的对象,所有lodash定义的方法都在它下面,有点像引入jQuery后使用的"$"
var a = [1,2,3,4,5,6]; var b = [2,3,6]; var result = _.difference(a, b); // result=[1,4,5]
何必用loadash,直接用数组的filter方法就行了:
loadash
var a = [1,2,3,4,5,6]; var b = [2,3,6]; var ans = a.filter((n) => !b.includes(n)); console.log(ans); //[1, 4, 5];
https://lodash.com/docs/4.17....
使用原生方式解决
使用Array的
filter
方法就可以解决你的问题,具体实现很简单,别人也有回答。借助第三方库解决
如果你不介意引用第三方库,那么推荐你引入lodash,这个库包含了大量处理数组的方法,如果你对数组操作场景比较多,强烈推荐使用。
它有个函数专门处理这个问题,叫做difference. 当然了,前面有个同学说用without也可以,只不过用起来没有difference方便。
下面代码中的"_"是引入lodash后一个默认的对象,所有lodash定义的方法都在它下面,有点像引入jQuery后使用的"$"
何必用
loadash
,直接用数组的filter
方法就行了: