Эффективные способы обработки двух разных элементов как единого уникального элемента?

#arrays #nodes #unique

#массивы #узлы #уникальный

Вопрос:

Допустим, у вас есть массив строк, ['one', '1', 'two', '2'] .

По какой-либо причине (проявите фантазию) элементы в этом массиве должны существовать независимо друг от друга. Но в одном случае вам нужно обрабатывать пары (или более) элементов как уникальные элементы. Например, в этом случае элементы 'one' и '1' следует рассматривать как одно уникальное значение.

Вы всегда будете знать, какие два (или более) элемента следует объединить вместе, чтобы в этом случае они отображались как единое значение.

Строки не всегда могут встречаться последовательно. Например, это может быть ['one', 'two', '1', '2'] , ['2', 'one', '1', 'two'] или ['1', 'two', '2', '1'] .

Как бы вы это сделали?

Моим первым побуждением было бы попытаться создать что-нибудь из функции uniqBy Loadash. Но мне любопытно, было бы проще сопоставить массив для объединения элементов, которые будут обрабатываться как uniqe вместе?

Комментарии:

1. Ммм … всегда ли массив сортировался, делая данные «вместе» / последовательными как пара?

2. [2*i] и [2*i 1] являются элементами. Делайте с ними, что хотите.

3. Извините, нет. Они не всегда будут последовательными. Я обновлю вопрос, чтобы прояснить это.

4. Если они не являются последовательными, как вы узнаете, какой элемент принадлежит какому другому элементу (ам)?

5. Вы можете просто объединить все строки. Если вы можете выбрать подходящий разделитель, вы можете объединить все строки с этим разделителем. Например, ['one', '1'].join('') будет создано уникальное значение, отличное от того, которое создано ['on', 'e1'].join('') . Если нет, то вы можете написать сравнение массива по элементам или сравнение объекта по свойствам.