L oop через неизменяемую карту в javascript - PullRequest
0 голосов
/ 17 июня 2020

я относительно новичок ie в javascript, и мне нужно выполнить задачу, у меня есть неизменяемая карта:

Map({
 isNamed: true,
 isMarried: "",
 isMan: false
})

Теперь мне нужно oop через эту карту и если значение равно "", я должен заменить его на false, поэтому моя последняя карта будет следующей:

isNamed: true,
 isMarried: false,
 isMan: false
})

Я использовал метод forEach, например:

const prepareData = cardData.forEach((value, key, map = {}) => {
      if (value === '') {
        map[key] = false;
      } else {
        map[key] = value;
      }
      return map;
    });

, но вывод 0. Что мне не хватает?

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Вот как это сделать:

for (let item of yourPreviousMap.entries()) {
  const [key, value] = item;
  if (value === '') {
    yourPreviousMap.set(key, false);
  }
}

Или, если этот код слишком сложен или вы не хотите изменять исходный объект карты, вы можете просто go с созданием новой карты :

const yourNewMap = new Map();

yourPreviousMap.forEach((value, key) => {
  yourNewMap.set(key, value === "" ? false : value);
});
0 голосов
/ 17 июня 2020

Что ж, есть пара проблем с реализацией.

  1. forEach () всегда возвращает undefined.
  2. Вам нужно использовать методы экземпляра Map для получения, установки или удалить значение.
  3. Вы изменяете существующий объект Map.
...