Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何在Ember中创建自定义枚举器?_Ember.js - Fatal编程技术网

Ember.js 如何在Ember中创建自定义枚举器?

Ember.js 如何在Ember中创建自定义枚举器?,ember.js,Ember.js,我正在寻找一种方法,以sumenumerator为例,创建用于收集的自定义枚举数-多次使用reduce()仅求和值并不是一个好的解决方案 EnumerableAPI说明枚举器必须实现nextObject方法,并具有length属性。但并不是所有的内置枚举器都有它们 我尝试重新打开Ember.Enumerable类,但失败了 例如,如何基于reduce(或如何创建的资源)创建sum枚举器将非常有帮助 编辑 Ember具有Em.computed.sum,但我找不到它作为正常的可枚举对象。我认为您混淆

我正在寻找一种方法,以
sum
enumerator为例,创建用于收集的自定义枚举数-多次使用
reduce()
仅求和值并不是一个好的解决方案

Enumerable
API说明枚举器必须实现
nextObject
方法,并具有
length
属性。但并不是所有的内置枚举器都有它们

我尝试重新打开
Ember.Enumerable
类,但失败了

例如,如何基于
reduce
(或如何创建的资源)创建
sum
枚举器将非常有帮助

编辑
Ember具有
Em.computed.sum
,但我找不到它作为正常的可枚举对象。

我认为您混淆了枚举函数和可枚举对象

可枚举的对象必须实现
nextObject
length
。这些是诸如链表、队列、堆栈和集合之类的东西。基本上,您希望迭代的数据结构

枚举函数可以应用于可枚举对象,如
sum
min
max

您不应该将此方法添加到Ember.Enumerable,因为并非所有的Enumerable都可以求和。一个数字列表可以,但是你如何计算一组水果的总和呢

也就是说,这应该回答您的问题:


这个问题让人困惑,你能提供一些关于你想做什么的ember-ish伪代码吗?根据要求更新问题。一个js-bin示例可以帮助其他人加入并找到解决方案。很好!现在我明白了!:)不幸的是,当我尝试像这样对数组求和时:
[1,2,3].sum()
我得到了错误“UncaughtTypeError:undefined不是函数”。
# custom enumarator I want to have
sum = @get('items').sum(0)

# current solution
sum = @get('items').reduce ((prev, curr) -> prev + curr,) 0