Как правильно сформировать требуемый объект данных из ответа http - PullRequest
0 голосов
/ 16 октября 2019

Я получаю определенный массив из вызова API, и из этого мне нужно сформировать массив объектов. Это массив объектов, которые я получаю с сервера

[
  {x:10,id:1,y:30},
  {x:10,id:2,y:50},
  {x:11,id:1,y:20},
  {x:11,id:2,y:70},
  {x:12,id:1,y:80},
  {x:12,id:2,y:90}
]

... и мне нужно преобразовать его в:

[
  {x:10,id1:30,id2:50},
  {x:11,id2:20,id2:70},
  {x:12,id3:80,id2:90}
]

По существу, сохраняя часть y относительно ихсоответствующий объект

Я пытался создать требуемый объект, но мне пришлось использовать слишком много циклов. Есть ли более простой или точный способ?

1 Ответ

0 голосов
/ 16 октября 2019

Вы можете попробовать это,

let arr=[ {x:10,id:1,y:30},
  {x:10,id:2,y:50},
  {x:11,id:1,y:20},
  {x:11,id:2,y:70},
  {x:12,id:1,y:80},
  {x:12,id:2,y:90}
]
let ans=[];
arr.forEach(o=>{
    if( !ans.find(i=>o.x===i.x)){
        let temp={x:o.x};
        temp[`id${o.id}`]=o.y;
        arr.filter(item=>(item.x===o.x && item.id!==o.id)).forEach((item,index)=>{
            temp[`id${item.id}`]=item.y;
        })
        ans.push(temp);
}
});
console.log(ans);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...