javascript无法映射具有嵌套值的对象数组 [英] javascript cannot map array of objects with nested values

查看:50
本文介绍了javascript无法映射具有嵌套值的对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试映射具有嵌套在子对象结构中的值的对象数组:

Trying to map array of objects with values nested in child objects structure like:

const objs = [{
        "B": {
            "value": 1,
        },
        "D": {
            "value": "45"
        },
        "E": {
            "value": "234"
        },
        "A": {
            "value": "543"
        },
        "C": {
            "value": "250"
        }
    },...]

改为以下结构:

[
  { name: 'B', value: 1 }, 
  { name: 'D', value: '45' }, 
  { name: 'E', value: '234' }, 
  { name: 'A', value: '543' },
  { name: 'C', value: '250' }
]

,并且映射结果为 undefined

const mapped = objs.map((key, index) => {
  Object.keys(key).map(el => ({
    name: el
  }))
})

示例: Stackblitz

推荐答案

您缺少 return 语句和属性定义。

You are missing return statement and value property definition.

此外,您可能还想使用 flatMap 而不是地图,以避免在结果中嵌套数组:

Besides you may want to use flatMap instead of map in order to avoid a nested array in the result:

const objs = [{
    "B": {
        "value": 1,
    },
    "D": {
        "value": "45"
    },
    "E": {
        "value": "234"
    },
    "A": {
        "value": "543"
    },
    "C": {
        "value": "250"
    }
}]

const mapped = objs.flatMap((key, index) => {
    return Object.keys(key).map(el => ({
        name: el,
        value: key[el].value
    }))
})

console.log(mapped)

这篇关于javascript无法映射具有嵌套值的对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆