Ember JS如何获取具有唯一属性值的数组

时间:2015-03-11 06:50:42

标签: javascript jquery arrays ember.js unique

我有一个包含不同属性的对象的数组。有些属性相似的对象。例如,

var array=[{'property':1},{'property':2},{'property':1}]

如何使用ember js获取具有唯一属性的数组?

最后我需要一个

数组
[{'property':1},{'property':2}]

非常感谢您的帮助。

更新:我尝试了uniq()方法。但是这不允许传递属性,因为ember允许进行排序。

谢谢!

2 个答案:

答案 0 :(得分:6)

我们可以使用Ember< uniqBy方法在一行代码中完成。

假设我们有这个数组=>

var arrayName=[{'property':1},{'property':2},{'property':1}]

要获得唯一数组,您需要执行以下操作=>

arrayName.uniqBy('property');

将返回以下=>

var arrayName=[{'property':1},{'property':2}]

uniqBy返回一个新的枚举,它只包含包含唯一属性值的项目。无论接收器类型如何,默认实现都会返回一个数组。(link to Ember Guide

答案 1 :(得分:4)

执行此操作的一种方法是将filter methodisAny method

结合使用
App.IndexController = Ember.ArrayController.extend({

  unique: function(){
    var model = this.get('model');
    var uniqueObjects = [];

    return model.filter(function(item){
      if(!uniqueObjects.isAny('property', item.property)){
        uniqueObjects.push(item);

        return true;
      }

      return false;
    });
  }.property('model')
});

工作示例here