Size: a a a

2020 July 31

DT

D_d Tch in pro.js
народ привет. вопрос быстренький. Как из массива типа

const srcArr = [
 {
   "time": 1579111185330,
   "rpm": 0,
   "speed": 0,
 },
 {
   "time": 1579111186340,
   "rpm": 1,
   "speed": 2,
 },
 {
   "time": 1579111187340,
   "rpm": 2,
   "speed": 4,
 }];

превратить в массив вида:

c
onst outArr = [
 {
   title: "time",
   data: [1579111185330, 1579111186340, 1579111187340]
 },
 {
  title: "rpm",
  data: [0, 1, 2],
 },
 {
  title: "speed",
  data: [0, 2, 4]
 }
]

что лучше использовать? map? reduce?
источник

IP

Ivan Pany in pro.js
D_d Tch
народ привет. вопрос быстренький. Как из массива типа

const srcArr = [
 {
   "time": 1579111185330,
   "rpm": 0,
   "speed": 0,
 },
 {
   "time": 1579111186340,
   "rpm": 1,
   "speed": 2,
 },
 {
   "time": 1579111187340,
   "rpm": 2,
   "speed": 4,
 }];

превратить в массив вида:

c
onst outArr = [
 {
   title: "time",
   data: [1579111185330, 1579111186340, 1579111187340]
 },
 {
  title: "rpm",
  data: [0, 1, 2],
 },
 {
  title: "speed",
  data: [0, 2, 4]
 }
]

что лучше использовать? map? reduce?
я бы просто перебрал этот объект и все что с ключем time записывал бы в Объект с тайтлом time
источник

IP

Ivan Pany in pro.js
не знаю на сколько это практично
источник

IP

Ivan Pany in pro.js
может есть в ес6 метод который сделает это быстрее
источник

IP

Ivan Pany in pro.js
но я такой не знаю
источник

DT

D_d Tch in pro.js
ну да это типа самое простое что кидается на ум. но хочется что-то другое
источник

IP

Ivan Pany in pro.js
не знаю насчет мапы в js
источник

IP

Ivan Pany in pro.js
D_d Tch
ну да это типа самое простое что кидается на ум. но хочется что-то другое
а тебе это надо один раз сделать? или переиспользовать? мб тогда функцию запилить с аргументами названия ключа и он будет создавать новый массив с объектом который тебе нужен
источник

i

i in pro.js
источник

M

Mr. Nobody in pro.js
D_d Tch
народ привет. вопрос быстренький. Как из массива типа

const srcArr = [
 {
   "time": 1579111185330,
   "rpm": 0,
   "speed": 0,
 },
 {
   "time": 1579111186340,
   "rpm": 1,
   "speed": 2,
 },
 {
   "time": 1579111187340,
   "rpm": 2,
   "speed": 4,
 }];

превратить в массив вида:

c
onst outArr = [
 {
   title: "time",
   data: [1579111185330, 1579111186340, 1579111187340]
 },
 {
  title: "rpm",
  data: [0, 1, 2],
 },
 {
  title: "speed",
  data: [0, 2, 4]
 }
]

что лучше использовать? map? reduce?
const result = srcArr.reduce((res, el) => {

 res.time.push(el.time);
 res.rpm.push(el.rpm);
 res.speed.push(el.speed);

 return res;

}, {time: [], rpm: [], speed: []});
источник

M

Mr. Nobody in pro.js
Не думаю что сократить можно, от пушей не избавишься скорей всего никак.
источник

PV

Peter V in pro.js
Mr. Nobody
const result = srcArr.reduce((res, el) => {

 res.time.push(el.time);
 res.rpm.push(el.rpm);
 res.speed.push(el.speed);

 return res;

}, {time: [], rpm: [], speed: []});
Имхо редьюс тут лишний. Просто в цикле напихать в result
источник

А

Алексей in pro.js
Гайз, а как можно настроить алиасы в вс коде?
источник

M

Mr. Nobody in pro.js
Peter V
Имхо редьюс тут лишний. Просто в цикле напихать в result
Так то же количество операций будет. Кроме разве что ретёрна на каждой итерации.
источник

M

Mr. Nobody in pro.js
Но я бы конечно сделал простым циклом, это всё равно выносить в отдельную функцию наверное.
источник

А

Алексей in pro.js
Алексей
Гайз, а как можно настроить алиасы в вс коде?
источник

PV

Peter V in pro.js
Mr. Nobody
Так то же количество операций будет. Кроме разве что ретёрна на каждой итерации.
Может это конечно вкусовщина. Операций действительно будет такое же количества, но бенефита от редьюса конкретно тут никакого, а читаться лучше будет.
источник

DT

D_d Tch in pro.js
@its_random обрати внимание что мне нужно разбить конечный массив.
источник

DT

D_d Tch in pro.js
получается тут в несколько операций все равно придется делать
источник

M

Mr. Nobody in pro.js
Peter V
Может это конечно вкусовщина. Операций действительно будет такое же количества, но бенефита от редьюса конкретно тут никакого, а читаться лучше будет.
Да я сам обычно за это топлю. В реальном проекте придётся ещё проверки добавлять какие-то, трайкэтчи и т.д. И от компактных конструкций не остаётся и следа.
источник