yaNastia
@yaNastia

Почему меняются все значения массива, вместо каждого отдельно?

Я изменяю дату каждого элемента в массиве на последние 24 часа и пытаюсь добавлять по 36 минут каждому элементу в массив в порядке возрастания, но вместо того что бы увеличивать на +36 мин каждое следующие значение , я один раз получаю +36 минут и все значения в массиве становятся одинаковыми. Скажите пожалуйста, как реализовать логику которая описана выше

let timestamps = [
  '2020-01-21T22:36:00.000Z',
  '2020-01-21T23:12:00.000Z',
  '2020-01-21T23:48:00.000Z',
  '2020-01-22T00:24:00.000Z',
  '2020-01-22T01:00:00.000Z'
];

const minutesToAdjust = 36;
const millisecondsPerMinute = 60000;
const oneDay = 1000 * 60 * 60 * 24;
const twentyFourHours = new Date(new Date() - oneDay);

timestamps = timestamps.map(el => {
  el = new Date(twentyFourHours + minutesToAdjust * millisecondsPerMinute);
  return el;
});
console.log(timestamps);
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Одинаковые потому, что внутри .map() никак не используется значение очередного элемента el

Всегда возращается одно и то же, приготовленное из констант twentyFourHours, minutesToAdjust, millisecondsPerMinute

spoiler
console.log(timestamps.map(ts => {
  const D = new Date(ts);
  D.setMinutes(D.getMinutes() + 36);
  return D.toISOString();
}))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект