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

如何对序列化关联对象数组执行字段的获取与赋值操作?

处理嵌套序列化对象的字段获取、修改与数据提取

看起来你已经搞定了嵌套对象的字段修改,接下来要把目标数据提取到独立数组对吧?先给你梳理下更高效的操作方式,再解决数组提取的问题:


一、快速获取与设置深层字段

其实不用每次都遍历顶层对象,你的模型是嵌套结构,直接用点语法就能快速访问深层字段,比遍历更简洁:

// 获取Branch的Code字段值
const branchCode = serializedObject.Branch.Code;
console.log(branchCode); // 输出 "xyz"

// 修改Branch的Code字段
serializedObject.Branch.Code = "abc123";

// 修改Branch的ID(和你现有代码效果一致)
serializedObject.Branch.ID = 456;

二、将目标数据提取到独立数组

如果你想把Branch对象(或者它的特定字段)提取到新数组里,不管用jQuery的$.each还是原生JS的遍历都能实现,这里给你两种方案:

方案1:用jQuery遍历实现

在你现有代码基础上,直接把目标对象/字段推入数组即可:

let newArray = [];

$.each(serializedObject, function (key, value) {
    console.log(`key= ${key} .`, value);
    if (key === 'Branch') {
        value.ID = 456; // 先修改字段
        // 方案A:把整个Branch对象加入数组
        newArray.push(value);
        
        // 方案B:只提取特定字段(比如ID和Code),按需选择
        // newArray.push({
        //     branchID: value.ID,
        //     branchCode: value.Code
        // });
    }
});

console.log(newArray); // 查看提取后的数组

方案2:原生JS遍历(更轻量,无需依赖jQuery)

用Object.entries遍历顶层对象的键值对,代码更简洁:

const newArray = [];

// 遍历顶层对象的所有键值对
for (const [key, value] of Object.entries(serializedObject)) {
    if (key === 'Branch') {
        value.ID = 456; // 修改字段
        // 把Branch对象推入数组,或者提取特定字段
        newArray.push(value);
    }
}

扩展:提取多个目标对象到数组

如果之后需要把Address、Telephone这类子对象也一起提取到数组,可以定义目标键列表,批量处理:

const targetKeys = ['Branch', 'Address', 'Telephone'];
const newArray = [];

Object.entries(serializedObject).forEach(([key, value]) => {
    if (targetKeys.includes(key)) {
        // 针对特定对象的修改逻辑,比如修改Branch的ID
        if (key === 'Branch') {
            value.ID = 456;
        }
        newArray.push(value);
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:37:00