Как вызвать процесс преобразования необработанных данных в форму, к которой мы можем легко получить доступ к нужным данным? - PullRequest
0 голосов
/ 28 января 2019

Типичная ситуация: некоторые приложения хранят данные во внешнем файле базы данных.В идеале структура данных должна иметь такую ​​структуру, чтобы к ней легко было получить доступ к любому желаемому значению из программы.Но реальность другая: нам нужно преобразовать необработанные данные в другую структуру, к которой может быть легко получить доступ из кода.Как называется этот процесс преобразования?

Потенциально неправильный ответ: «отображение».Насколько я знаю, «отображение» - это определение соответствия между двумя наборами данных.В этом вопросе мы рассматриваем один набор данных.

Пример: мы получили данные ниже:

const rawData = {
    foo: {
        a: 'asdf',
        b: 'nhyt'
    },
    bar: {
        a: 'gfdsa',
        b: 'sdasdf'
    }
}

Но мы хотим, чтобы это повторялось по значению b.Итак, перед этим нам нужно ( наиболее подходящий синоним слова "преобразовать" здесь ): 1011 *

const preprocessedData = { // optimized? mapped? reduced? reshaped?
    [rawData.foo.b]: {
        name: 'foo',
        a: 'asdf'
    },
    [rawData.bar.b]: {
        name: 'bar',
        a: 'gfdsa'
    }
 }

Обратите внимание, что теперь мы не обсуждаем КАКизменить данные , чтобы сделать их более доступными.Я просто хочу знать, как называется процесс, когда мы делаем данные более доступными.Это должно быть что-то вроде «картирования» или «оптимизации», но я полагаю, что ни один из них не является правильным ответом.

1 Ответ

0 голосов
/ 28 января 2019

Вы всегда можете использовать для цикла, все функции, такие как map, reshape, просто для того, чтобы уменьшить нагрузку на кодирование и сделать его более читабельным, в этом нет необходимости.Кроме того, если вы все сделаете правильно, производительность цикла for лучше, чем такая функция, как map.

var rawData = {
    foo: {
        a: 'asdf',
        b: 'nhyt'
    },
    bar: {
        a: 'gfdsa',
        b: 'sdasdf'
    }
}

var preprocessedData = {};
for(key in rawData) {
	var obj = rawData[key];	
	preprocessedData[obj.b] = {name:key, a:obj.a};
}

console.log(preprocessedData);
...