You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何将父对象属性设为子对象对应属性的求和值

计算JSON父元素属性为子元素对应属性总和的TypeScript实现

嘿,作为JSON和TypeScript新手,别担心!这个需求其实很容易搞定,咱们一步步来实现它。

首先,为了让TypeScript更好地帮我们做类型检查,先给数据结构定义对应的接口:

// 定义子元素的类型结构
interface ChildValue {
  number1: number;
  number2: number;
  childId: number;
}

// 定义父元素的类型结构
interface ParentValue {
  number1: number;
  number2: number;
  parentId: number;
  childValues: ChildValue[];
}

// 定义整个数据的顶层结构
interface Data {
  parentValues: ParentValue[];
}

接下来,写一个处理函数,专门用来遍历父元素数组,计算子元素属性的总和并更新父元素:

function calculateParentNumbers(data: Data): Data {
  // 遍历每一个父元素
  data.parentValues.forEach(parent => {
    // 初始化两个总和变量为0
    let totalNum1 = 0;
    let totalNum2 = 0;

    // 遍历当前父元素的所有子元素,累加对应属性值
    parent.childValues.forEach(child => {
      totalNum1 += child.number1;
      totalNum2 += child.number2;
    });

    // 将计算好的总和赋值给父元素的number1和number2
    parent.number1 = totalNum1;
    parent.number2 = totalNum2;
  });

  return data;
}

现在用你提供的输入数据来测试这个函数:

// 你的输入数据(直接转成TypeScript对象)
const inputData: Data = {
  parentValues: [{
    number1: 0,
    number2: 0,
    parentId: 1,
    childValues: [{
      number1: 10,
      number2: 20,
      childId: 1
    }, {
      number1: 30,
      number2: 40,
      childId: 2
    }]
  }]
};

// 调用处理函数
const outputData = calculateParentNumbers(inputData);

// 打印结果,和你期望的输出一致
console.log(JSON.stringify(outputData, null, 2));

运行这段代码后,你会得到和期望完全一致的输出:

parentValues:[{ "number1": 40, "number2": 60, "parentId": 1, "childValues": [{ "number1": 10, "number2": 20, "childId": 1 }, { "number1": 30, "number2": 40, "childId": 2 } ]}]

如果你的数据是从外部获取的JSON字符串,只需要先用JSON.parse()解析成对象,再断言成我们定义的Data类型即可,比如:

const jsonString = '{"parentValues":[{"number1":0,"number2":0,"parentId":1,"childValues":[{"number1":10,"number2":20,"childId":1},{"number1":30,"number2":40,"childId":2}]}]}';
const parsedData = JSON.parse(jsonString) as Data;
const result = calculateParentNumbers(parsedData);

这样就完美解决你的需求啦!

内容的提问来源于stack exchange,提问作者user3205921

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:32:21