Рубрики
Без рубрики

Лучшие практики JavaScript для написания более надежного кода – удаление дубликатов и слияния массивов

JavaScript – это прост в языке программирования. Легко писать программы, которые работают и делают это … Tagged с JavaScript, Codenewbie, Codequality, WebDev.

JavaScript – это прост в языке программирования. Легко написать программы, которые запускаются и что -то делают. Тем не менее, трудно учитывать все случаи использования и написать надежный код JavaScript.

В этой статье мы посмотрим, как удалить дублирующие элементы из массива надежным образом.

Наборы

Мы можем использовать JavaScript Установить Конструктор для создания наборов, которые являются объектами, которые не могут включать дубликаты элементов.

Дублирующие элементы определяются аналогично === Оператор, но мы -0 и +0 считаются разными значениями.

НАН также считается тем же, что и по себе с целью определения дублирующих элементов для Установить s.

Мы можем создать набор из массива следующим образом:

const set = new Set([1, 2, 3, 3]);

Тогда у нас есть Установить экземпляр, который имеет 1, 2 и 3 как значение установить Анкет

Поскольку Установить это итерабильный объект, мы можем использовать оператор спреда, чтобы преобразовать его обратно в массив следующим образом:

const noDup = [...set];

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

Поскольку алгоритм определения дубликатов определяется аналогичным образом, аналогично === Оператор, он хорошо работает для удаления дубликатов примитивных значений.

Тем не менее, это не работает для объектов, если они не ссылаются на тот же элемент в памяти.

Если у нас есть объекты, то наиболее надежный способ удалить дубликаты – это преобразовать их в строки, а затем разобрать их обратно в объекты.

Например, если у нас есть следующий массив:

const arr = [{
  a: 1
}, {
  a: 1
}];

Затем мы можем написать следующий код, чтобы сопоставить массив на строку, перевернуть его в Установить , тогда мы можем проанализировать оставшиеся элементы обратно в объекты следующим образом:

const set = new Set(arr.map(a => JSON.stringify(a)));
const noDup = [...set].map(a => JSON.parse(a));

В приведенном выше коде у нас есть Установить , который создан из записей массива, которые строительны с Json.stringify Анкет

Затем мы используем оператор спреда, чтобы распространить установить Вернемся к массиву, а затем сопоставьте струнные записи обратно на объекты с Json.parse Анкет

Это хорошо работает для простых объектов, которые не имеют в них методов.

Если у наших объектов есть методы, то мы должны убедиться, что каждая запись ссылается на один и тот же объект.

Установить У также есть методы, чтобы облегчить их просмотр. Есть записи Метод для получения всех записей в качестве итератора, который возвращал каждую запись в качестве массива с [ключ, значение] структура.

foreach Требуется обратный вызов, чтобы пройти через них. Ключи и Значения Методы давайте получаем ключи и значения соответственно.

ясно Метод удаляет все элементы из набора.

У него также есть размер свойство, чтобы получить размер Установить Анкет

Использование оператора спреда

Оператор спреда является одной из самых полезных функций, которые недавно добавляются в JavaScript.

Когда он используется с массивами, он может позволить нам сделать копии массивов или объединить их, не призывая каких -либо методов. Это делает наш код коротким и простым для чтения.

Мы просто поместили все в массив с оператором спреда, а затем мы получаем новый массив с новыми предметами.

Кроме того, он позволяет нам объединять элементы из разных видов итерабильных объектов в один массив.

Например, мы можем использовать оператор спреда с несколькими массивами следующим образом:

const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const arr = [...arr1, ...arr2];

Тогда мы получаем это значение arr это [1, 2, 3, 4, 5] .

Как мы видим, элементы добавляются для нового массива с оператором спреда.

Поскольку оператор спреда работает с различными видами итерационным объектом, мы можем распространять Карта с а также Установлен и в массивы:

const arr1 = [1, 2, 3];
const set = new Set([4, 5]);
const map = new Map();
map.set('a', 1);
map.set('b', 2);
const arr = [...arr1, ...set, ...map];

Тогда мы получаем это arr является:

[
  1,
  2,
  3,
  4,
  5,
  [
    "a",
    1
  ],
  [
    "b",
    2
  ]
]

Карта S преобразуются в массив с записями, которые представляют собой массив ключ и ценность .

Вывод

Установить S полезны для удаления дублирующих элементов из массивов. Они также могут быть преобразованы или объединены в массивы.

Мы также можем объединить несколько видов итерабильных объектов в массив с оператором спреда.

Пост Лучшие практики JavaScript для написания более надежного кода – удаление дубликатов и слияния массивов появился первым на Веб -разработчик Анкет

Оригинал: “https://dev.to/aumayeung/javascript-best-practices-for-writing-more-robust-code-removing-duplicates-and-merging-arrays-31bg”