Как преобразовать массив массивов ключевых значений в массив объектов с функцией .reduce?

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

import re
with open('/proc/meminfo') as f:
    meminfo = f.read()
matched = re.search(r'^MemTotal:\s+(\d+)', meminfo)
if matched: 
    mem_total_kB = int(matched.groups()[0])
-3
задан Moonjsit 13 July 2018 в 16:20
поделиться

2 ответа

Нравится это:

const input = [
  [ 'foo', 3.672698 ],
  [ 'bar', 71.999747 ],
  [ 'baz', 107.400002 ],
];

const output = input.reduce((acc, item) => {
  acc.push({
    name: item[0],
    money: item[1]
  });
  return acc;
}, [])

console.log(output);

1
ответ дан Moonjsit 17 August 2018 в 12:30
поделиться

Я знаю, что вы специально попросили .reduce. Но сокращение - это сокращение набора до одного значения. Запрошенная функция - это сервис для .map. И Google Scripts тоже это поймут. Взгляните на этот пример:

var arr = [
  [ 'foo', 3.672698 ],
  [ 'bar', 71.999747 ],
  [ 'baz', 107.400002 ],
]

var res = arr.map(function(item){ 
     return {name: item[0], money: item[1]};
});
console.log(res);

0
ответ дан Nelson Teixeira 17 August 2018 в 12:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: