Как получить текст Unicode из файла блокнота, сохраненного как текстовый файл ANSI

Вы можете скопировать объект с помощью Array#reduce() и вернуть его Object.values() :

const data = [
  { name: 'xx1', date: '2017-09-03', value: 49 },
  { name: 'xx2', date: '2017-10-23', value: 67 },
  { name: 'xx2', date: '2017-12-01', value: 70 }
]
const map = data.reduce((acc, { name, date, value }) => {
  if (!(name in acc)) {
    acc[name] = { name, data: {} }
  }

  acc[name].data[date] = value

  return acc
}, {})
const result = Object.values(map)

console.log(result)

Этот подход позволяет избежать использования Array#find(), которая является сложностью по времени O (n), и использует name in acc для проверки существования и acc[name] для доступа, которые являются одновременно сложностью O (1), что делает это подход O (n) в целом.

Напротив, другой ответ - общая сложность времени O (n2).

-1
задан derloopkat 18 January 2019 в 20:15
поделиться

1 ответ

Данные были потеряны. Символы, которые не поддерживает кодировка ANSI вашей системы, были преобразованы в ?, и вы не можете отменить это. Там нет восстановления символов, которые были преобразованы в ?.

Блокнот должен был предупредить вас о потере данных, прежде чем он позволил сохранить файл.

save prompt

0
ответ дан Remy Lebeau 18 January 2019 в 20:15
поделиться
Другие вопросы по тегам:

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