Всем привет. Задача такая, дан массив, состоящий из одних дат. Хочу получить индекс через значение, но какой элемент я бы не выбрал, всегда получаю -1.
var k = [
new Date('2017-07-17'),
new Date('2017-07-20'),
new Date('2017-07-23'),
new Date('2017-07-26'),
new Date('2017-07-28'),
new Date('2017-07-30')
]
console.log(k.indexOf(new Date('2017-07-28')));
Обычный indexOf не сработает, так как у нас даты в виде обьектов, но можно использовать метод findIndex (подробней о нем) например с приведением даты к числу.
То-есть мы передаем в findIndex метод сравнения, который приводит 2ве даты в числа и сравнивает их :
var k = [
new Date('2017-07-17'),
new Date('2017-07-20'),
new Date('2017-07-23'),
new Date('2017-07-26'),
new Date('2017-07-28'),
new Date('2017-07-30')
];
var testDate = new Date('2017-07-28');
var index = k.findIndex(i => +i == +testDate);
console.log(index);
ПС: прям в документации (ссылка выше) есть полифилл на данный метод, если нужна поддержка более старых браузеров.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости