有没有一种简单的方法可以使用 TypeScript 更改嵌套 json 数据中的一个值?

问题描述

TypeScript 版本:^3.5.3

对于这个json

 const pdfjs = await import('pdfjs-dist/build/pdf');
 const pdfjsWorker = await import('pdfjs-dist/build/pdf.worker.entry');

 pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker;

它可以更改为具有扩展语法的新标题

const config = {
  id: 1,title: "A good day",body: "Very detailed stories"
  publishedAt: "2021-01-20 12:21:12"
}

最终的 const newConfig = { ...config,title: "A new day" } 数据将是

newConfig

在这种情况下

{
  id: 1,title: "A new day",body: "Very detailed stories"
  publishedAt: "2021-01-20 12:21:12"
}

还想更改 const config = { id: 1,articleConfig: { version: "2",configs: [ { title: "A good day",body: "Very detailed stories" publishedAt: "2021-01-20 12:21:12" } ] } } 的值。试过

title

它会破坏预定义的 json 模式:

const newConfig = {
  ...config,articleConfig: {
    configs: [
      {
        title: "A new day"
      }
    ]
}

那么有没有一种简单的方法可以只覆盖这种 json 中的一项?

解决方法

const oldConfig = { /* ... */ };

const newConfig = {
  ...oldConfig,articleConfig: {
    ...oldConfig.articleConfig,configs: config.configs.map(config => ({
       ...config,title: "A new day"
    }))
};

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...