stevenjin 2024-10-19 13:45 采纳率: 98%
浏览 0
已结题

Jquery构建不固定字段个数的母子表

jquery
母表与子表字段不固定(个数未知),以下只实现了子表不固定添加,怎样实现母表不固定添加呢?


 
var childArray = [
    { "ChildId": 1, "ChildName": "Child 1" },
    { "ChildId": 2, "ChildName": "Child 2" }
];
 
var parentArray = [
    { "ParentId": 1, name:"Country","Children": childArray }
];
 
//以下方式存在问题,请指正:
var item = {};
var parentArray[]
var childArray = [];
item['ParentId']=1,
item['name']=”Country“,
parentArray.push(item);
 
 item['ChildId']=1,
 item['ChildId']=2,
  childArray.push(item); // 将当前行的数据添加到数组中
  parentArray.push(childArray);


//以下方式,只有子表的字段是动态方式添加的,母表怎样以无固定方式添加呢?
const parentArr = [];
const childArray = [];
// 定义添加子数组元素的方法
function addChildItem (cId, cName) {
  childArray.push({
    ChildId: cId,
    ChildName: cName,
  })
}
// 定义添加父数组元素的方法
function addParentItem (parentId, name, childArr) {
  parentArr.push({
    ParentId: parentId,
    name,
    childArray: childArr,
  })
}
addChildItem(1, 'Child 1');
addChildItem(2, 'Child 2');
addParentItem(1, 'Country', childArray);
console.log(parentArr);
  • 写回答

1条回答 默认 最新

  • 无疆76 2024-10-19 13:46
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在你的代码中,母表的添加方式确实存在问题。你试图将子表的数组整体作为一个元素添加到母表中,这是不正确的。你需要为每个子表元素创建一个单独的数组,然后将这个数组添加到母表的Children属性中。这里有一种修正的方法:

    假设我们想创建一个可以动态添加子表和母表的数组,我们可以采用以下的思路:

    首先定义一些数据结构:母表(Parent)和子表(Child)。每次添加新的子表元素时,我们将它们添加到一个单独的数组中,然后将这个数组添加到母表的Children属性中。当添加新的母表元素时,我们只需要将这个新的母表对象添加到母表数组中即可。

    以下是修正后的代码示例:

    var parentArray = []; // 用于存储母表的数组
    var currentChildArray = []; // 用于存储当前正在添加的子表的数组
    
    // 添加子表元素的方法
    function addChildItem(cId, cName) {
      currentChildArray.push({ ChildId: cId, ChildName: cName }); // 将新的子表元素添加到当前子表数组中
    }
    
    // 添加母表元素的方法,同时包含子表数组
    function addParentItem(parentId, name) {
      // 首先,创建一个新的母表对象并添加父ID和名称属性
      var newParentItem = { ParentId: parentId, name: name, Children: [] };
      // 然后,将当前子表数组添加到新母表的Children属性中
      newParentItem.Children = currentChildArray; // 注意这里的赋值操作会复制数组,不会改变原始数组的状态
      // 最后,将新的母表对象添加到母表数组中
      parentArray.push(newParentItem);
      // 清空当前子表数组以便添加新的子表元素
      currentChildArray = []; 
    }
    
    // 添加子表元素示例
    addChildItem(1, 'Child 1');
    addChildItem(2, 'Child 2');
    // 添加母表元素示例,同时包含之前的子表元素
    addParentItem(1, 'Country'); // 此时,新的母表和包含之前添加的子表元素的数组将被添加到parentArray中
    console.log(parentArray); // 输出结果以查看是否正确添加母表和子表元素
    

    这样你就可以动态地添加母表和子表元素了。每次添加新的母表元素时,都会创建一个新的子表数组并将它添加到母表的Children属性中。这样就可以实现动态添加不固定个数的字段的母子表了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月19日
  • 已采纳回答 10月19日
  • 创建了问题 10月19日

悬赏问题

  • ¥60 Matlab联合CRUISE仿真编译dll文件报错
  • ¥15 脱敏项目合作,ner需求合作
  • ¥15 脱敏项目合作,ner需求合作
  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId