Ember是否有.difference函数like underscore does?我有一个ArrayController
,每个对象都有一组对象。我想从ArrayController2
:
ArrayController1
中的所有对象
ArrayController1:
1
2
3
4
ArrayController2:
2
4
然后做差异:
ArrayController1.difference(ArrayController2) => 1
3
答案 0 :(得分:7)
我认为没有一种方法可以做到这一点,但你可以编写一个基本上执行以下操作的帮助程序:
array1.reject((function(item) {
return array2.contains(item);
}), array2);
只需循环遍历array1并拒绝为array2.contains()返回true的任何内容。
答案 1 :(得分:0)
晚5年了,但是有一个计算功能setDiff
,您可以使用它来实现所需的功能。
import { setDiff } from '@ember/object/computed';
...
ArrayDifference: setDiff('ArrayController1', 'ArrayController2') // [1, 3]
https://www.emberjs.com/api/ember/2.18/functions/@ember%2Fobject%2Fcomputed/setDiff