Припускаючи, що у мене є таке:
var array =
[
{"name":"Joe", "age":17},
{"name":"Bob", "age":17},
{"name":"Carl", "age": 35}
]
Який найкращий спосіб отримати масив різного віку, таким чином, щоб отримати масив результатів:
[17, 35]
Чи я можу альтернативно структурувати дані або кращий метод таким чином, що мені не доведеться повторювати кожен масив, перевіряючи значення "age" і перевіряючи його на інший масив, і додавати його, якщо ні?
Якби якимось чином я міг би просто витягнути різні епохи, не повторюючи ...
Поточний неефективний спосіб я хотів би вдосконалити ... Якщо це означає, що замість "масиву" буде масив об'єктів, а "карта" об'єктів з деяким унікальним ключем (тобто "1,2,3"), добре теж. Я просто шукаю найефективніший спосіб роботи.
Далі йдеться про те, як я зараз це роблю, але для мене, здається, ітерація є просто крихкою для ефективності, хоча вона і працює ...
var distinct = []
for (var i = 0; i < array.length; i++)
if (array[i].age not in distinct)
distinct.push(array[i].age)
Set
об’єкт і map
с є марнотратними. Ця робота просто займає простий .reduce()
етап.