stevenjin 2024-10-18 20:20 采纳率: 98%
浏览 2
已结题

jquery子母表不限个数添加字段

以下子表可以做到不限个数添加,母表有没有办法做到不限个数添加字段呢?

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-18 20:29
    关注

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

    对于你给出的示例,你是使用数组来模拟的层级结构关系。其中 childArray 用于存储子元素,而 parentArr 用于存储父元素及其子元素列表。你提到的添加子元素的方法确实可以不限个数地添加子元素,而对于添加父元素的方法,你也可以使用类似的方式来添加不限个数的字段。只不过这里的字段不是子元素数组,而是其他的属性。

    假设你想在父元素中添加更多的字段,你可以扩展你的 addParentItem 函数来接受更多的参数。下面是一个简单的例子:

    const parentArr = [];
    const childArray = [];
    
    // 定义添加子数组元素的方法(此处保持不变)
    function addChildItem (cId, cName) {
      childArray.push({
        ChildId: cId,
        ChildName: cName,
      })
    }
    
    // 扩展定义添加父数组元素的方法,以添加更多的字段
    function addParentItemWithFields (parentId, name, childArr, ...fields) { // 使用剩余参数来接受额外的字段
      const parentFields = {}; // 用于存储额外的字段值
      for (let i in fields) { // 将额外的字段添加到parentFields对象中
        parentFields[i] = fields[i];
      }
      parentArr.push({
        ParentId: parentId,
        name,
        childArray: childArr,
        ...parentFields // 使用扩展运算符将额外的字段添加到父元素对象中
      })
    }
    
    addChildItem(1, 'Child 1');
    addChildItem(2, 'Child 2');
    addParentItemWithFields(1, 'Country', childArray, 'extraField1', 'value1', 'extraField2', 'value2'); // 添加额外的字段到父元素中
    console.log(parentArr); // 输出父元素数组,包括额外的字段值
    

    在这个例子中,我使用了 ES6 的剩余参数 (...fields) 来接收任意数量的额外字段,然后将这些字段存储在一个对象中,并使用扩展运算符 (...) 将它们添加到父元素对象中。这样你就可以在父元素中添加任意数量的字段了。

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥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