如何调用原始数据整形过程以形成一个我们可以轻松访问所需数据的过程?

时间:2019-01-28 06:38:29

标签: javascript arrays object terminology

典型情况:某些应用程序将数据存储在数据库的外部文件中。理想情况下,数据结构应具有易于从程序访问任何所需值的结构。但是实际情况有所不同:我们需要将原始数据转换为其他结构,这可能很容易从代码中访问。此转换过程的名称是什么?

可能错误的答案:“映射”。据我所知,“映射”是两个数据集之间一致性的定义。在这个问题中,我们正在考虑单个数据集。

示例:我们收到了以下数据:

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

但是我们希望通过b值进行迭代。因此,在此之前,我们需要(在这里“ transform”最合适的同义词)将其更改为:

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

请注意,现在我们不讨论如何重塑数据以使其更易于访问。我只想知道,当我们使数据更易于访问时,如何称为过程。应该是“映射”或“优化”之类的东西,但我想它们都不是正确的答案。

1 个答案:

答案 0 :(得分:0)

您始终可以使用for循环,像mapreshape之类的所有功能只是为了减少您的编码工作量并使其更具可读性,这是不必要的。此外,如果操作正确,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);