#javascript #node.js
#javascript #node.js
Вопрос:
Я использую XLSX NPM для чтения файла XLSX и преобразовал в json, как показано ниже
Мой лист Xlsx имеет формат:..
skill id name xx
abc 4578 express-basic 30
4698 express-advanced 60
qwerty 7856 express-basic 90
MY Json:
[ { skill: 'abc',
id: 4578,
name: 'express-basic',
xx: 30 },
{ id: 4689, name: 'express-advanced', xx: 60 },
{ skill: 'qwerty',
id: 7856,
name: 'express-advanced',
xx: 90 } ]
Я должен обновить collection X where id=4578,4689 ass skill = abc
итак, как я могу преобразовать приведенный ниже json в следующий:
[
{'abc':[4578,4689]},
{'qwerty':[7856]}
]
чтобы я мог выполнить цикл через это и я мог обновить collectionX. Моя проблема в том, как я могу узнать, что следующий навык начинается с json и создает приведенный выше массив. Спасибо…
Ответ №1:
Вы можете работать с array.reduce
.
YOUR_JSON_ARRAY.reduce(function (obj, item) {
obj[item.skill] = obj[item.skill] || [];
obj[item.skill].push(item.id);
return obj;
}, {});
Приведенный выше код преобразует groupBy
ваш массив с помощью item.skill
ключа.
PS вам нужно обработать это, если item.skill
не существует, иначе это создаст undefined
пару ключ: значение.
Надеюсь, это поможет.