我有两个数组阵列,我正试图找到差异。
var a = [[ 11, 24, 28, 38, 42, 44 ],
[ 7, 19, 21, 22, 29, 38 ],
[ 2, 21, 27, 30, 33, 40 ],
[ 6, 11, 12, 21, 34, 48 ],
[ 1, 10, 17, 31, 35, 40 ],
[ 1, 18, 26, 33, 36, 45 ],
[ 15, 21, 22, 24, 38, 46 ],
[ 5, 17, 21, 27, 29, 41 ],
[ 3, 7, 12, 16, 20, 28 ],
[ 9, 12, 13, 18, 30, 37 ],
[ 3, 19, 21, 31, 33, 46 ],
[ 6, 11, 16, 18, 20, 34 ],
[ 1, 3, 11, 13, 24, 28 ],
[ 12, 13, 16, 40, 42, 46 ],
[ 1, 3, 5, 36, 37, 41 ],
[ 14, 15, 23, 24, 26, 31 ],
[ 7, 13, 14, 15, 27, 28 ]];
var b = [[ 4, 7, 9, 21, 31, 36 ],
[ 2, 5, 6, 12, 15, 21 ],
[ 4, 7, 8, 15, 38, 41 ],
[ 11, 24, 28, 38, 42, 44 ],
[ 7, 19, 21, 22, 29, 38 ]];
我如何找到:
c = [[ 2, 21, 27, 30, 33, 40 ],
[ 6, 11, 12, 21, 34, 48 ],
[ 1, 10, 17, 31, 35, 40 ],
[ 1, 18, 26, 33, 36, 45 ],
[ 15, 21, 22, 24, 38, 46 ],
[ 5, 17, 21, 27, 29, 41 ],
[ 3, 7, 12, 16, 20, 28 ],
[ 9, 12, 13, 18, 30, 37 ],
[ 3, 19, 21, 31, 33, 46 ],
[ 6, 11, 16, 18, 20, 34 ],
[ 1, 3, 11, 13, 24, 28 ],
[ 12, 13, 16, 40, 42, 46 ],
[ 1, 3, 5, 36, 37, 41 ],
[ 14, 15, 23, 24, 26, 31 ],
[ 7, 13, 14, 15, 27, 28 ]];
我曾尝试过下划线:
_ = require('underscore');
_.difference(a,b);
但它没有用。
我也试过lodash:
_ = require('lodash');
_.differenceBy(a,b);
但它也不起作用。
我在这里做错了什么?
答案 0 :(得分:36)
使用_.differenceWith
,并传递比较两个数组的比较器,如:
_.differenceWith(a, b, _.isEqual);
答案 1 :(得分:6)
如@ dsl101所述,
_.xor([1, 2, 3], [2, 3, 4]);
// [1, 4]