2014-05-16 4 views
0

sum 열거 자의 예제에서 컬렉션에 대한 사용자 지정 열거자를 만드는 방법을 찾고 있는데 - reduce()을 여러 번 사용하면 값을 합한 값이 좋은 해결책이 아닙니다.Ember에서 사용자 지정 열거자를 만드는 방법은 무엇입니까?

Enumerable API는 열거자는 nextObject 메서드를 구현하고 length 속성을 가져야한다고 말합니다. 그러나 모든 내장 된 열거자가 이들을 가지고있는 것은 아닙니다.

Ember.Enumerable 클래스를 다시 열려고했지만 실패했습니다.

reduce (또는 리소스 수행 방법)을 기반으로 sum 열거자를 만드는 방법의 예가 큰 도움이 될 것입니다.

편집

# custom enumarator I want to have 
sum = @get('items').sum(0) 

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

엠버가 Em.computed.sum하지만 보통의 열거로 찾을 수 없습니다.

+0

이 질문은 혼란, 당신은 당신이 원하는 무엇의 일부 엠버 틱 의사 코드를 제공 할 수 있습니다 말했다

, 이것은 당신이 질문에 대답해야합니까? – Sukima

+0

요청 된대로 질문이 업데이트되었습니다. – wryrych

+0

js bin 예제는 다른 사람들이 뛰어 들어 해결책을 찾을 수 있도록 도와줍니다. – blessenm

답변

2

나는 당신이 함수와 열거 가능한 객체를 열거하는 것을 혼란스럽게 생각한다고 생각한다.

열거 형 개체는 nextObjectlength을 구현해야합니다. 이들은 링크 된 목록, 대기열, 스택 및 세트와 같은 것입니다. 기본적으로 반복 할 데이터 구조.

열거 형 함수는 sum, min, max과 같이 열거 형 개체에 적용 할 수있는 기능입니다.

Emumer.Enumerable에이 메서드를 추가하면 안됩니다. 모든 열거 형을 요약 할 수 없기 때문입니다. 숫자의 목록은 수 있지만 과일의 컬렉션을 어떻게 합쳐 줄까요?

http://emberjs.jsbin.com/nodojadi/1/edit

+0

니스! 지금 나는 그것을 얻었다! :) – wryrych

+0

불행히도 이런 식으로 배열을 합산하려고하면 : [[1, 2, 3] .sum()'Uncaught TypeError : undefined is not function '오류가 발생합니다. http://emberjs.jsbin.com/yedamuci/2/edit – wryrych

관련 문제