у меня есть код, где я создаю двумерный массив с помощью new Array (); Вот мой код, где я получаю некоторые значения из некоторых API REST и манипулирую такими значениями, как показано в приведенном ниже коде
Я пытался перебрать созданный мной объект, используя доступную справку из переполнения стека, для задач, которые ранее были опубликованы другими пользователями, т.е. пытаться перебрать массив с парами ключ-значение, используя цикл foreach или используя синтаксис ключа в объекте. с циклом For.
var CCTVCounterDictionary = new Array();
var InitCCTVCounter = function (type, zoneName, quantityCCTV) {
if (CCTVCounterDictionary[type] == undefined) {
CCTVCounterDictionary[type] = new Array();
if (CCTVCounterDictionary[type][zoneName] == undefined) {
CCTVCounterDictionary[type][zoneName] = new CCTVCounter(type, zoneName, 0);
CCTVCounterDictionary[type][zoneName].Increment(quantityCCTV);
}
}
else if (CCTVCounterDictionary[type][zoneName] == undefined) {
CCTVCounterDictionary[type][zoneName] = new CCTVCounter(type, zoneName, 0);
CCTVCounterDictionary[type][zoneName].Increment(quantityCCTV);
}
else {
CCTVCounterDictionary[type][zoneName].Increment(quantityCCTV);
}
};
и вот мой класс js, который я использую для вызова функции Increment для объекта CCTVCounter, который присваивается строковому индексу каждого второго измерения массива
function CCTVCounter(type, zon, counter) {
this.CCTVType = type;
this.ZoneName = zon;
this.CCTVCount = counter;
}
CCTVCounter.prototype.Increment = function (incrementBy) {
if (incrementBy == undefined)
this.CCTVCount++;
else
this.CCTVCount += parseInt(incrementBy);
}
проблема с этим подходом состоит в том, что длина моего массива остается равной 0, и если я пытаюсь выполнить итерацию массива с помощью foreach, кажется, что он не находит ключ в CCTVCounterDictionary с циклом foreach или для синтаксиса цикла.
Я пытаюсь найти помощь для фрагмента кода, чтобы иметь возможность перебирать этот массив, как показано на рисунке выше, но я не могу понять, как это сделать. любая помощь высоко ценится.
Ниже я включаю журнал для того, как вывод выводится кодом, который создает двумерный массив
SmartEnforcement.js: 202[] Banjir: Array(0) undefined: CCTVCounter {
CCTVType: "Banjir",
ZoneName: undefined,
CCTVCount: 264
}
length: 0 __proto__: Array(0) Cadangan: Array(0) undefined: CCTVCounter {
CCTVType: "Cadangan",
ZoneName: undefined,
CCTVCount: 26
}
length: 0 __proto__: Array(0) Sediada: Array(0) PJS: CCTVCounter {
CCTVType: "Sediada",
ZoneName: "PJS",
CCTVCount: 368
}
PJU: CCTVCounter {
CCTVType: "Sediada",
ZoneName: "PJU",
CCTVCount: 981
}
SEKSYEN: CCTVCounter {
CCTVType: "Sediada",
ZoneName: "SEKSYEN",
CCTVCount: 504
}
SS: CCTVCounter {
CCTVType: "Sediada",
ZoneName: "SS",
CCTVCount: 816
}
length: 0 __proto__: Array(0) length: 0 __proto__: Array(0)
Вот как я вызываю свою основную функцию для вызова InitCCTVCounter
InitCCTVCounter(marker.Type, f.attributes.ZON, marker.TotalCCTVS);