【问题标题】:How calling the raw data reshaping process to form, which we can easily access to desired data?如何调用原始数据重塑过程形成,我们可以轻松访问所需的数据?
【发布时间】:2019-06-21 03:26:13
【问题描述】:

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

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

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

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

但我们希望它通过b 值进行迭代。所以,在此之前,我们需要(这里是“转换”的最合适的同义词)它:

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

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

【问题讨论】:

    标签: javascript arrays object terminology


    【解决方案1】:

    你总是可以使用 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);

    【讨论】:

    • 感谢您的回答。在这里,我们不讨论如何重塑数据以使其更易于访问。我只想知道,当我们使数据更易于访问时,如何调用进程。它应该是“映射”或“优化”之类的东西,但我想它们都不是正确的答案。
    • 我认为这种简单的转换没有名字...也许您可以使用术语data massage
    • “按摩”?这很有趣:)
    猜你喜欢
    • 2014-04-01
    • 2018-08-31
    • 1970-01-01
    • 2017-12-21
    • 2016-08-25
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多