Чтение XLSX в из запроса обновления

#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 пару ключ: значение.

Надеюсь, это поможет.