each-Select
each
method is useful, it also comes with an awesome extended family of methods that are even more powerful! For the next few examples, we’ll work with a slightly more complex data structure. It look like this:
friends = [
{
name: "Diego",
status: "Online"
},
{
name: "Liam",
status: "Away"
},
{
name: "Gloria",
status: "Online"
},
{
name: "Charlie",
status: "Away"
}
]
select
is similar to each
in that we pass it a block to run on each element in the collection, but the similarities stop there. The important difference is that select
will return a new collection with only the items that the block returned true
for. It sounds pretty intimidating at first, so let’s walk through an example. We can use
select
to create a new Array filled with only our online friends: online_friends = friends.select do |friend|
friend[:status] == "Online"
end
Because the block is so short, it would also work well as a one-liner:
online_friends = friends.select{|friend| friend[:status] == "Online"}
select
will go through each element one at a time, starting with {name: “Diego”, status: “Online”}
, passing it to the block we wrote. The block contains a single line: friend[:status] == “Online”
. That line returns either true
or false
. If the block returns true
, that specific item is added to a new Array that will be returned at the very end of select
. This table shows each step of the process:
At the very end,
select
returns this Array which we save to a new online_friends
variable: [{ name: "Diego", status: "Online"}, { name: "Gloria", status: "Online"}]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.