当我尝试推送类型为update的temp对象时,它会创建重复的对象,而不是向updatedjson添加新对象。基本上,我从一个文件中读取ip地址列表,创建新的sample类型的json对象,并将其添加到updatedjson数组中。
sample =[
{
"destination": "string",
"destinationType": "string",
"isStateless": true,
"protocol": 6,
"tcpOptions": {
"destinationPortRange": {
"max": 0,
"min": 0
}
}
}
];
var updatedjson = [];
var tempjson = sample[0];
tempjson.isStateless = false;
tempjson.protocol = 6;
tempjson.tcpOptions.destinationPortRange.min = 443;
tempjson.tcpOptions.destinationPortRange.max = 443;
tempjson.destinationType = "CIDR_BLOCK";
for (var i = 0; i < inputArray.length; i++) {
for (var j = 0; j < inputArray[i].cidrs.length; j++) {
var tempjson = sample[0];
tempjson.isStateless = false;
tempjson.protocol = 6;
tempjson.tcpOptions.destinationPortRange.min = 443;
tempjson.tcpOptions.destinationPortRange.max = 443;
tempjson.destinationType = "CIDR_BLOCK";
tempjson.destination = inputArray[i].cidrs[j];
addToUpdate(tempjson);
}
}
function addToUpdate(temp) {
updatedjson.push(temp);
}
即使tempjson.destination是不同的,它也会推送相同的对象,比如ip地址166.35.25.12/24和36.34.25.12/24。
[
{
destination: '166.35.25.12/24',
destinationType: 'CIDR_BLOCK',
isStateless: false,
protocol: 6,
tcpOptions: { destinationPortRange: [Object] }
},
{
destination: '166.35.25.12/24',
destinationType: 'CIDR_BLOCK',
isStateless: false,
protocol: 6,
tcpOptions: { destinationPortRange: [Object] }
}
]
发布于 2020-08-20 18:01:46
当我尝试推送更新类型的临时对象时,它会创建重复的对象,而不是向updatedjson添加新对象
这是因为你在循环中一遍又一遍地推送同一个对象。如果你想推送一个新对象,你必须在每次循环中创建一个新对象。请记住,JavaScript完全按照您告诉它的那样做。不多也不少。
https://stackoverflow.com/questions/63510784
复制相似问题