以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
对于你给出的示例,你是使用数组来模拟的层级结构关系。其中 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
) 来接收任意数量的额外字段,然后将这些字段存储在一个对象中,并使用扩展运算符 (...
) 将它们添加到父元素对象中。这样你就可以在父元素中添加任意数量的字段了。