Как удалить значения и добавить столбец индекса к объекту JavaScript? - PullRequest
0 голосов
/ 06 мая 2018

У меня есть эти данные:

[]
0:{time: 1525355921817, sym: "AAPL", price: 169.16, size: 98, stop: false, …}
1:{time: 1525355923216, sym: "AAPL", price: 170.15, size: 6, stop: false, …}
2:{time: 1525355923216, sym: "AAPL", price: 170.06, size: 57, stop: false, …}

Мне нужно получить его в следующем формате:

0:{"time": 1525355921817, "sym": "AAPL", "price": 169.16, "index": 0} 
1:{"time": 1525355923216, "sym": "AAPL", "price": 170.15, "index": 1} 
2:{"time": 1525355923216, "sym": "AAPL", "price": 170.06, "index": 2}

По сути, просто отбрасываем размер, останавливаемся и добавляем столбец индекса. Мне также нужно иметь доступ к нему как this.data.price и вернуть все значения цен ... это вообще возможно? Эти данные поступают из службы в угловой

Как мне этого добиться? (учтите, что я не опытный пользователь angular или javascript)

Ответы [ 3 ]

0 голосов
/ 06 мая 2018

Вы можете map массив объектов. Вы можете деконструировать каждый объект для более короткого кода.

let arr = [{time: 1525355921817, sym: "AAPL", price: 169.16, size: 98, stop: false,},{time: 1525355923216, sym: "AAPL", price: 170.15, size: 6, stop: false,},{time: 1525355923216, sym: "AAPL", price: 170.06, size: 57, stop: false,}];

let result = arr.map(({size,stop,...r}, i) => Object.assign(r, {index: i}));

console.log( result );

Документ: map () , Назначение деструктуры

0 голосов
/ 06 мая 2018

Мне также нужно иметь доступ к нему как this.data.price и получить обратно все значения цены ... это вообще возможно?

Предполагается, что массив меньше data:

 const groupValue = (arr, key) => arr[key] = arr.map(el => el[key]);

 groupValue(this.data, "price");

 console.log(this.data.price);
0 голосов
/ 06 мая 2018

Вы можете использовать .map() для создания желаемого выхода:

let data = [{time: 1525355921817, sym: "AAPL", price: 169.16, size: 98, stop: false},{time: 1525355923216, sym: "AAPL", price: 170.15, size: 6, stop: false},{time: 1525355923216, sym: "AAPL", price: 170.06, size: 57, stop: false}];

let result = data.map((o, i) => ({
  time: o.time,
  sym: o.sym,
  price: o.price,
  index: i
}));

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...