При создании утилиты, которая загружает данные формы и создает текстовый файл с данными, вводимыми пользователем. Я пытался создать шаблон в соответствии с требованиями, пытаясь поместить все входные данные в словарь. Данные собираются правильно, но при каждой загрузке между PDU добавляется дополнительное пространство строки: PDU_IP. Также я перебираю переменный шаг 2 раза, [0] -ая итерация в порядке, но [1] -ая итерация идет на той же строке, где заканчивается первый словарь (т.е. строка после Controller_ID # 4). Как я могу получить это в следующей строке? Любая помощь очень ценится. Спасибо за потраченное время и усилия.
Вот так выглядят мои данные
const step = oForm.chassis.value;
let payload = '';
//Creating the data elements to be cpatured in the downloaded yaml file
var ctrl_ref={0:[0,1],
1:[2,3]};
for (let i = 0; i < step; i++) {
// console.log('Walking east one step');
const ctrl_id=ctrl_ref[i];
payload+= '- # UUT' + i + ' configuration'+'\n - # Chassis ' + i + ' configuration'+ String.fromCharCode(10);
const addToPayload = (object, whitespace) => {
for (const key of Object.keys(object)) {
payload += key + '\n';
const details = object[key];
for (const key1 of Object.keys(details)){
const value = details[key1];
str=value[0];
com=value[2];
val=value[1];
whitespace=value[3];
var input= JSON.stringify(val);
if (oForm.ctrls.value==2){
const ctrl_id=ctrl_ref[i];
let data = {" PDU:": {"PDU_IP":[' PDU_IP',' '+ oForm.ip.value," #PDU IP",' '+'\n'],
"PDU_LEFT":[' PDU_LEFT',[oForm.lo.value]," # left_outlet(s) ",' '+'\n'],
"PDU_RIGHT":[' PDU_RIGHT',[oForm.ro.value]," # right_outlet(s) ", ' '+'\n']
},
" \n Controller: # Controller settings ": {
"Controller_ID#1": [" - # Controller A for RBOD/EBOD"],
"iSCSI_IPs_A":[' iSCSI_IPs',icsciIp[ctrl_id[0]].value," #iSCSI IP ",''+'\n'],
"Netmask IP_A":[" MC_IP",' '+mcIps[ctrl_id[0]].value,' # RBOD MC IP',''+'\n'],
"MC_Netmask_A": [" MC_Netmask",' '+mcNetmasks[ctrl_id[0]].value,' # RBOD MC Netmask',''+'\n'],
'MC_Gateway_A':[' MC_Gateway',' '+mcGateways[ctrl_id[0]].value,' # RBOD MC Gateway',''+'\n'],
'MC_A': [' MC',' '+mc[ctrl_id[0]].value,' # RBOD MC port',''+'\n'],
'SC_A':[' SC',' '+sc[ctrl_id[0]].value,' # RBOD SC port',''+'\n'],
'FU_A':[' FU',' '+fu[ctrl_id[0]].value,' # RBOD FU port',''+'\n'],
'EC_A':[" EC",' '+ec[ctrl_id[0]].value,' # EC port on RBOD or GEM port on JBOD',''+'\n'],
'Controller_ID#2': [" ID",' '+Ctids[i+1].value," #Controller ID, A or B",''+'\n'],
"Controller_ID#3": ['\n'+" - # Controller A for RBOD/EBOD"],
"iSCSI_IPs_B":[' iSCSI_IPs',icsciIp[ctrl_id[1]].value," #iSCSI IP ",''+'\n'],
"Netmask IP_B":[" MC_IP",' '+mcIps[ctrl_id[1]].value,' # RBOD MC IP',''+'\n'],
"MC_Netmask_B":[" MC_Netmask",' '+mcNetmasks[ctrl_id[1]].value,' # RBOD MC Netmask',''+'\n'],
'MC_Gateway_B':[' MC_Gateway',' '+mcGateways[ctrl_id[1]].value,' # RBOD MC Gateway',''+'\n'],
'MC_B': [' MC',' '+mc[ctrl_id[1]].value,' # RBOD MC port',''+'\n'],
'SC_B':[' SC',' '+sc[ctrl_id[1]].value,' # RBOD SC port',''+'\n'],
'FU_B':[' FU',' '+fu[ctrl_id[1]].value,' # RBOD FU port',''+'\n'],
'EC_B':[" EC",' '+ec[ctrl_id[1]].value,' # EC port on RBOD or GEM port on JBOD',''+'\n'],
'Controller_ID#4': [" ID",' '+Ctids[ctrl_id[1]].value," #Controller ID, A or B",''+'\n'],
}
}
addToPayload(data, '' );
}