5

Ember 是否具有像下划线一样的 .difference 函数?我ArrayController每个都有一组对象。我想从中减去所有ArrayController2对象ArrayController1

ArrayController1:
   1
   2
   3
   4

ArrayController2:
   2
   4

然后做区别:

ArrayController1.difference(ArrayController2) => 1
                                                 3
4

2 回答 2

7

我认为没有一种方法可以做到这一点,但是您可以编写一个基本上执行以下操作的助手:

array1.reject((function(item) {
  return array2.contains(item);
}), array2);

只需遍历 array1 并拒绝任何为 array2.contains() 返回 true 的内容。

于 2013-01-25T14:49:52.887 回答
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

于 2018-08-10T13:36:42.683 回答