gpt4 book ai didi

Javascript - 将对象添加到对象 - 如何处理数组?

转载 作者:行者123 更新时间:2023-12-03 03:28:21 25 4
gpt4 key购买 nike

使用 JavaScript 对象时,我正在努力弄清楚如何向其添加新数据(特别是更多对象)。当涉及到添加数据时,我不知道如何将现有值转换为对象数组。

这是我的对象的示例:

它非常简单,此时不包含任何数组。这就是我陷入困境的地方。

var obj = {
"data": {
"VersionForTarget": "1",
"RulesContainer": {
"Rule": { // <--- New Rule Goes Here
"RuleParentID": "1",
"RuleVersionID": "1",
"MappedValue": "1",
"ProcessingOrder": "1",
"MetaInsertUtc": "2017-03-03T17:54:34.643",
"Value": "Omaha",
"IsRuleRetired": "0",
"UserImpactCount": "2277",
"AttributeContainer": {
"Attribute": { // <--- New Attribute Goes Here
"AttributeID": "6",
"AttributeName": "Campus",
"AttributeDetailsContainer": {
"AttributeDetails": { // <--- New Attribute Details Goes Here
"RuleDetailID": "1",
"AttributeID": "6",
"OperatorID": "3",
"AttributeValue": "1",
"RuleParentID": "1",
"Value": "Omaha",
"IsValueRetired": "0",
"OperatorName": "In List",
"SqlOperator": "IN"
}
}
}
}
}
}
}
};

如果我想向 Rule 添加一个新的数据对象,Rule 就会变成 Rule 对象的数组。

我要做什么:

我本质上是在尝试创建三个函数。一种将添加 Rule,一种将 Attribute 添加到指定规则,一种将 AttributeDetails 添加到指定规则。

// This will add a new rule
function addRule() {

var newRule = {
"RuleParentID": "3",
"RuleVersionID": "1",
"MappedValue": "4",
"ProcessingOrder": "5",
"MetaInsertUtc": "2017-03-03T17:54:34.643",
"Value": "New Thing",
"IsRuleRetired": "0",
"UserImpactCount": "2277"
};

}


// This will add a new attribute
function addAttribute(RuleParentID) {

// Add attribute object in our parent rule

var newAttribute = {
"AttributeID": "6",
"AttributeName": "Campus",
}

}


// This will add new attribute details
function addAttributeDetails(RuleParentID, AttributeID) {

// Add attribute details to our specified attribute in our specified parent rule

var newAttributeDetails = {
"RuleDetailID": "1",
"AttributeID": "6",
"OperatorID": "3",
"AttributeValue": "1",
"RuleParentID": "1",
"Value": "Omaha",
"IsValueRetired": "0",
"OperatorName": "In List",
"SqlOperator": "IN"
}

}

我的问题

我可以采取哪些方法来拍摄这样的照片?例如,我考虑过循环访问数据 RuleContainer,但 Rule 可能是数组,也可能不是数组。

我已经阅读了 lodash 的一些文档,并使用了 _find 等一些函数,至少了解了我需要操作的位置,但随后我不知道从那里该去哪里。

有什么建议吗?

这是此设置的一个 fiddle ,其中包含使用此类工作功能可能产生的结果的示例。

https://jsfiddle.net/tor1t2q6/1/

最佳答案

要解决您的问题,您可以将 RuleContainer 设为数组而不是对象。

var obj = {
"data": {
"VersionForTarget": "1",
"RulesContainer": [//array bracket
"Rule": { // <--- New Rule Goes Here
"RuleParentID": "1",
"RuleVersionID": "1",
"MappedValue": "1",
"ProcessingOrder": "1",
"MetaInsertUtc": "2017-03-03T17:54:34.643",
"Value": "Omaha",
"IsRuleRetired": "0",
"UserImpactCount": "2277",
"AttributeContainer": {
"Attribute": { // <--- New Attribute Goes Here
"AttributeID": "6",
"AttributeName": "Campus",
"AttributeDetailsContainer": {
"AttributeDetails": { // <--- New Attribute Details Goes Here
"RuleDetailID": "1",
"AttributeID": "6",
"OperatorID": "3",
"AttributeValue": "1",
"RuleParentID": "1",
"Value": "Omaha",
"IsValueRetired": "0",
"OperatorName": "In List",
"SqlOperator": "IN"
}
}
}
}
}
]
}
};

关于Javascript - 将对象添加到对象 - 如何处理数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46209126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com