루비에서 미분 ([i] - [i -1])를 계산합니다.
-
06-07-2019 - |
문제
for loop 또는 eary_with_index를 사용하는 사소한, Ruby Syntax를 사용하여 더 나은 방법이 있는지 궁금합니다.
소스 배열의 파생물 인 새 배열을 만들어야합니다.
for(int i = 1; i < oldArray.length; i++)
{
newArray[i] = oldArray[i] - oldArray[i-1]
}
해결책
old_array.each_cons(2).map{|x, y| y - x}
Enumerable#each_cons
청크 크기가 2로 호출되지만 블록 없이는 각 연속 요소 쌍을 반복하는 열거자를 반환합니다. old_array
. 그런 다음 우리는 그냥 사용합니다 map
각 쌍에서 뺄셈을 수행합니다.
다른 팁
last=0
new = old.map{|v|x=v-last;last=v;x}[1..-1]
제휴하지 않습니다 StackOverflow