Я пытаюсь получить уникальные элементы в каждом столбце массива json. Я хочу, чтобы преобразовать это:Разбиение jsonarray на основе ключа с помощью lodash underscore
элементы вар = [{ "Имя": "Тип 1", "идентификатор": 13}, { "имя": "Тип 2", "ID": 14} , {"name": "Type 3", "id": 14}, {"name": "Type 3", "id": 13}, {"name": "Type 2", "id": 12}, {"name": "Тип 3", "id": 12}];
в
[{ "Тип 1", "Тип 2", "Тип 3"}, {12,13,14}]
Это то, что я пытался :
var uniq1 = _.map(_.uniqBy(items, 'id'), 'id');
var uniq2 =_.map(_.uniqBy(items, 'name'), 'name')
console.log(uniq1,uniq2)
Fiddle: https://jsfiddle.net/yogeshwaran/5ntfzss1/
Но это, кажется, т o быть неэффективным решением для моего варианта использования, так как мой реальный набор данных намного больше (100000 элементов с 6 ключами в каждом элементе). Есть ли способ получить все уникальные значения для каждого из ключей. Я не хочу перебирать весь набор каждый раз. Мой идеальный подход: 1. Разделите массив на основе ключей. 2. Затем найдите уникальный в каждом из разделов. 3. Присоедините результаты.
Спасибо.
Вы можете использовать ванильный JS или новый js Устанавливает (следить за поддержкой браузера), чтобы сделать более эффективным – juvian
Выполняете ли вы это в браузере для веб-приложения или только для обработки данных JSON? Если последний, я рекомендую использовать 'jq' для обработки больших наборов данных JSON и имеет много приятных [вспомогательных функций] (https://stedolan.github.io/jq/manual/#TypesandValues). – aug