Карта Javascript через массив, чтобы сделать еще один массив объектов - PullRequest
0 голосов
/ 28 июня 2018

Я хочу просмотреть массив строк и, в зависимости от того, что это за строка, создать массив объектов.

Например, если массив:

[a,a,a,b,b,c,d]

Я хочу отобразить массив и создать объект с парами ключ и значение, которые последовательно складывают строки:

[{a:1},{a:2},{a:3},{b:1},{b:2},{c:1},{d:1}]

Как мне это сделать?

Я пробовал отобразить, но не могу понять, как добавить значение предыдущего объекта (a: 1 -> a: 2)

1 Ответ

0 голосов
/ 28 июня 2018

Во время сопоставления вам нужно хранить отдельный счетчик того, сколько раз появлялся каждый элемент, и увеличивать соответствующий ключ на каждой итерации. Вы можете использовать Map для этого:

const input = ['a','a','a','b','b','c','d'];
const map = new Map();
console.log(
  input.map(char => {
    const count = (map.get(char) || 0) + 1;
    map.set(char, count);
    return { [char]: count };
  })
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...