вставить объект в массив на основе дат от самых старых до самых новых - PullRequest
0 голосов
/ 25 марта 2019

Я массив объектов.Каждый объект имеет свойство даты и свойство строки.У меня также есть пустой массив.Я не могу понять логику, чтобы подтолкнуть строку на основе даты от самой старой до самой новой.

     const oldToNew = []
     for (const baseId in results[key][test]) {
            // log the array of objects
            //example [{string: 'test', date: '2019-03-04T10:36:37.206000Z'}, {string: 'test1', date: '2019-03-010T10:36:37.206000Z'}]
            console.log(results[key][test][baseId])
            results[key][test][baseId].forEach(element => {

            });
        }
     // I want the value to be [test, test1]

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Вам нужно отсортировать исходный массив с помощью sort, а затем извлечь строки с помощью map

примерно так:

array.sort((a, b) => a.date < b.date).map(el => el.string);
1 голос
/ 25 марта 2019

Используйте Array.sort , чтобы сравнить свойство date каждого объекта с предыдущим объектом, а затем используйте Array.map , чтобы вернуть массив всех элементов 'string свойства.

Обновление не нужно parse отметка времени даты.

const items = [{string: 'test4', date: '2019-03-04T10:36:37.206000Z'}, {string: 'test1', date: '2019-03-10T10:36:37.206000Z'}, {string: 'test2', date: '2019-03-09T10:36:37.206000Z'}, {string: 'test3', date: '2019-03-07T10:36:37.206000Z'}]

const strings = items
  .sort((a, b) => b.date > a.date)
  .map(({ string }) => string)

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