배열의 객체를 모두 최대 4 개까지 반복 할 수 있습니까? 다음 코드에서는 모든 객체를 반복합니다. 처음 네 개의 객체 만 필요합니다.배열의 첫 번째 n 요소를 반복하십시오.
objects = Products.all();
arr=Array.new
objects.each do |obj|
arr << obj
end
p arr
그것이 objects=objects.slice(4)
같은 일, 또는 유일한 방법은 반복이다 할 수 있습니까?
편집 : 긴
나는 또한 반복이 발생하는 횟수를 인쇄해야하지만 내 솔루션 objects[0..3]
(답변 덕분에 여기). 인덱스 0에서 시작하여 나에게 배열의 4 개 요소를 제공합니다 :
i=0;
arr=Array.new
objects[0..3].each do |obj|
arr << obj
p i;
i++;
end
방금 처음 네 개의 객체를 잡아하려고, 또는 당신이 처음 네 개의 객체를 반복하려고 사용하여 처음 n 요소를 얻을 수 있습니다 필요 없어요 ? 'take' 메소드를 사용하여 처음 n 개의 객체를 반복 할 수 있습니다 :'objects.take (4) .each do ...' –
왜'arr = Products.limit (4)가 아닌가? to_a' (하지만 당신은 아마도 to_a가 필요하지 않을 것입니다)? 'Model.all'이라고 말하는 순간 언제든지 다시 생각해 야합니다 (그리고 세 번째로). –
@Yosef 원하는 [each_with_index] (http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-each_with_index) ... 또한 '++'는 루비 연산자 – Kyle