【问题标题】:Get specific values from object when mapping through nested object通过嵌套对象映射时从对象中获取特定值
【发布时间】:2022-01-06 14:41:29
【问题描述】:

我想返回一个包含 _time 和 _value 特定值的数组。我做的功能如下:

getMachineData(data) {
    console.log(data)
    const result = data.map((innerArray) => {
        console.log(typeof innerArray)
        console.log(innerArray)
        // Map over the inner array
        return innerArray.map((item) => {
            console.log(item)
            return ({
                time: item._time,
                value: item._value
            });
        });
    });
    console.log(result);
};

但在这段代码中,最后一个 console.log 永远不会被命中。

innerArray数据如下:

{ "result": "_result", "table": 0, "_start": "2021-01-06T14:35:53Z", "_stop": "2022-01-06T14:35:53Z", "_time": "2021-10-11T10:58:30Z", "_value": 0, "_field": "approved", "_measurement": "oee-data", "end_time_str": "2021-10-11T10:59:00Z", "machine": "almo", "start_time_str": "2021-10-11T10:58:30Z" }

输出:

【问题讨论】:

    标签: javascript reactjs object


    【解决方案1】:

    innerArray 是一个Object,所以不必迭代。只需直接访问该值。替换下面的代码

    return innerArray.map((item) => {
                console.log(item)
                return ({
                    time: item._time,
                    value: item._value
                });
            });
    

    return {
             time: innerArray._time,
             value: innerArray._value
           };
    

    优化后的代码如下所示

    getMachineData(data) {
        const result = data.map(({_time, _value}) => ({time: _time, value:_value }));
        console.log(result);
    };
    

    【讨论】:

      【解决方案2】:

      你的 innerArray 不是一个数组而是一个对象。您不能映射像 innerArray.map 这样的对象...这可能会引发错误。

      【讨论】:

        猜你喜欢
        • 2013-08-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-27
        • 2020-09-27
        • 1970-01-01
        • 2019-09-02
        • 2021-12-21
        • 2012-02-25
        相关资源
        最近更新 更多