Ember JS如何获取具有唯一属性值的数组
Ember JS how to get an array with unique property values
我有一个数组,其中包含具有不同属性的对象。存在具有类似属性的对象。例如
var array=[{'property':1},{'property':2},{'property':1}]
如何使用 ember js 获取具有唯一属性的数组?
最后,我需要一组
[{'property':1},{'property':2}]
非常感谢您的帮助。
更新:我尝试了uniq()方法。但这不允许传递属性,因为余烬允许排序。
谢谢!
我们可以使用 Ember 的 uniqBy 方法在一行代码中做到这一点。
假设我们有这个数组 =>
var arrayName=[{'property':1},{'property':2},{'property':1}]
要获得唯一的数组,您需要执行以下操作 =>
arrayName.uniqBy('property');
这将返回以下内容 =>
var arrayName=[{'property':1},{'property':2}]
uniqBy 返回一个新的枚举对象,该枚举仅包含包含唯一属性值的项。默认实现返回一个数组,而不考虑接收器类型。(链接到余烬指南)
一种方法
是将 filter
方法与isAny
方法结合使用
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')
});
这里的工作示例
使用 forEach
的类似解决方案(不要忘记将 get
用于item.get('property')
):
unique: Em.computed('model', function() {
var uniqueObjects = [];
this.get('model').forEach(function(item) {
if (!uniqueObjects.isAny('property', item.get('property'))) {
uniqueObjects.addObject(item);
}
});
return uniqueObjects;
})
相关文章:
- ng重复中的ng模型-初始化唯一作用域属性
- JavaScript-用唯一属性标识对象
- “new”关键字是在构造对象时自动设置“constructor”属性的唯一方法吗
- Ember JS如何获取具有唯一属性值的数组
- 角度:当您需要“跟踪”但您没有唯一的属性可以跟踪时,您会怎么做
- 动态删除没有唯一属性的输入字段
- 基于单个属性从数组中获取唯一对象
- 使用jQuery隐藏具有非唯一属性的元素
- Knockout.js中使用的唯一ID;对于“;单选按钮组中的标签属性
- Backbone.js在permalink集合中所有模型的唯一属性名称
- 如何检查具有唯一值的相同属性的同一类
- 页面上第二个表单所需的唯一 id 属性
- Lodash Javascript 基于唯一属性值返回元素
- 基于两个属性从 javascript 中的对象数组中获取唯一数组
- 如何使用 Wolfpack.js 测试我的 Sails.js 模型的唯一电子邮件属性
- 克隆元素,但它们必须具有“唯一属性”
- 如何通过对象的唯一属性值从数组中获取对象
- 基于每个元素预先存在的唯一属性,复制/更改多个元素的属性
- 将唯一属性关联到JavaScript中的匿名函数
- 没有数.相对于对象数组中的另一个属性的唯一属性的出现