在js中转换对象谁来指导一下

我想将 Javascript 对象转换为不同的形式。让我们举个例子。

可能我有这样的对象,


```javascript
[
  {
    "_id": 1,
    "name": "abc",
    "sub": [
      "bbb",
      "ccc"
    ]
  },
  {
    "_id": 8,
    "name": "abc1",
    "sub": [
      "bbb1"
    ]
  },
  {
    "_id": 11,
    "name": "abc"
  }
]

我想像下面这样转换它,


```javascript
[
  {
    "_id": 1,
    "name": "abc",
    "sub": [
      {
        "sub": "bbb"
      },
      {
        "sub": "ccc"
      }
    ]
  },
  {
    "_id": 8,
    "name": "abc1",
    "sub": [
      {
        "sub": "bbb1"
      }
    ]
  },
  {
    "_id": 11,
    "name": "abc"
  }
]

我的代码看起来像这样,

x.map(({ sub }) => ({ sub: sub })); 
如果我尝试这个,我会得到这样的结果,

[{"sub":["bbb","ccc"]},{"sub":["bbb1"]},{}]
谁能帮我解决这个问题。谢谢


将Array.prototype.map()与扩展运算符一起使用两次

   let a = [
  {
    "_id": 1,
    "name": "abc",
    "sub": [
      "bbb",
      "ccc"
    ]
  },
  {
    "_id": 8,
    "name": "abc1",
    "sub": [
      "bbb1"
    ]
  },
  {
    "_id": 11,
    "name": "abc"
  }
]

let b = a.map((el) => {
  if(el.sub){
        let c = el.sub.map(el2 => {
        return {sub: el2}
      })
      el = {...el,sub: c}
   }
   return el;
})

console.log(b)

建议你自己好好看看,这个问题并不是很复杂。


    const data = [
        {
            "_id": 1,
            "name": "abc",
            "sub": [
                "bbb",
                "ccc"
            ]
        },
        {
            "_id": 8,
            "name": "abc1",
            "sub": [
                "bbb1"
            ]
        },
        {
            "_id": 11,
            "name": "abc"
        }
    ]

    data.forEach(cur => {
        if (cur.sub) {
            cur.sub = cur.sub.map(su => ({ sub: su }))
        }
    })

    console.log(data)