Rails генерирует массив хешей - PullRequest
0 голосов
/ 13 июня 2018

У меня есть массив, и я хочу сгенерировать массив с хешем, а внутри этого хеша есть еще данные.У меня есть массив данных, который:

   [
        {
        id: 1,
        name:"abc"
        title:"xyz"
        },
        {
        id: 2,
        name:"abc1"
        title:"xyz1"
        },
   ]

И я хочу сгенерировать вывод, как это:

[
{        
    type: "column",
    dataPoints: [
    {y: 1, label: "abc"},
    {y: 2 ,label: "xyz"}
     ]
},
{        
    type: "column",
    dataPoints: [
    {y: 1, label: "abc1"},
    {y: 2 ,label: "xyz"}
    ]
 }         
]

Как создать этот вид хеш-массива, используя карту или любой цикл массива.Я пытаюсь создать точки данных для диаграмм.Я ищу лучшее возможное решение.

1 Ответ

0 голосов
/ 13 июня 2018

Один из вариантов:

array = [
  {
    id: 1,
    name:"abc",
    title:"xyz"
  },
  {
    id: 2,
    name:"abc1",
    title:"xyz1"
  }
]


[:name, :title].map do |column_name|
  { 
    type: 'column',
    dataPoints: array.map do |el| 
      { y: el[:id], label: el[column_name] }
    end
  }
end

# or in one line:

[:name, :title].map { |column_name| { type: 'column', dataPoints: array.map { |el| { y: el[:id], label: el[column_name] } } } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...