首页 > 解决方案 > 替换数组中每个对象的值

问题描述

我想更改数组中每个对象的值。我想path.parse(name).namename object内部做一个并用新值item array返回它array

我的数组是这样的:

[
  {
    "name": "core Test",
    "item": [
      {
        "name": "test/core/core.js",
        "item": []
      }
    ]
  },
  {
    "name": "users Test",
    "item": [
      {
        "name": "test/users/user.js",
        "item": []
      }
    ]
  }
]

这是我的代码:

array.forEach((element) => {
  const { item } = element;
  item.forEach((i) => {
    const { name } = i;
    const newname = path.parse(name).name;
    console.log(newname);
  });
});

我想要的输出是:

[
  {
    "name": "core Test",
    "item": [
      {
        "name": "core",
        "item": []
      }
    ]
  },
  {
    "name": "users Test",
    "item": [
      {
        "name": "user",
        "item": []
      }
    ]
  }
]

标签: javascriptjson

解决方案


这将为您提供所需的输出

const path = require('path')

const datas = [
  {
    name: 'core Test',
    item: [
      {
        name: 'test/core/core.js',
        item: []
      }
    ]
  },
  {
    name: 'users Test',
    item: [
      {
        name: 'test/users/user.js',
        item: []
      }
    ]
  }
]

const transformedData = datas.map(data => {
  data.item = data.item.map(x => ({
    name: path.parse(x.name).name,
    item: x.item
  }))
  return data
})

console.log(transformedData )

推荐阅读