Управление картами в Node JS - PullRequest
0 голосов
/ 03 июня 2018

Поскольку у меня есть 4 ключа / значения в карте, я пытаюсь сохранить два ключа в строковом формате, а остальные два в массиве.

прямо сейчас, какой вывод я получаю:

{ url: 'account/43',    
  status: '200',    
  headers: '\'content-type\' = \'application/json\'',    
  body: '{ name: Fatma Zaman }' }

Ожидаемый результат:

{ url: 'account/43',    
  status: '200',    
  headers: [ '\'content-type\' = \'application/json\'' ],    
  body: [ '{ "name": "Fatma Zaman" }' ]}

ниже приведен код, который возвращает все пары ключ / значение в строке, я могу сделать все пары ключ / значение в массиве, но не уверен, как сделать только двазначение ключа для массива.

function processFile(content) {

  lodash.forEach(content, function(node) {

    if (node.startsWith("//")) {

      key = node.substring(2, node.length - 2).toLowerCase().trim()
      return

    } else {
      value = node
    }

    map[key] = value
  })

  console.log(lodash.map(map, "key"))
  return map

}

1 Ответ

0 голосов
/ 03 июня 2018

Вы можете добавить простое условие на основе имени ключа и поместить значение в массив

map [key] = ['header', 'body']. Includes (key)?[значение]: значение;

function processFile(content) {
  lodash.forEach(content, function(node) {
    if (node.startsWith('//')) {
      key = node
        .substring(2, node.length - 2)
        .toLowerCase()
        .trim();
      return;
    } else {
      value = node;
    }

    map[key] = ['header', 'body'].includes(key) ? [value] : value;
  });
  return map;
}
...