Я создаю двухмерный массив javascript из файла XML, который затем манипулирую и фильтрую по мере необходимости перед отображением на странице.
Когда я перебираю записи XML, я немного манипулирую данными,построить из него обычный массив (rowRecord) и затем добавить этот массив в 2D-массив (dataSet).Дело в том, что я получаю хороший 2D-массив, но все записи являются дубликатами самой последней записи, которую я добавляю.
Используя некоторые предупреждения, я обнаружил, что при добавлении первой записи всехорошо.Затем я добавляю вторую запись и получаю набор данных с 2 записями, каждая из которых является записью 2. Добавление третьих результатов в набор данных из 3 записей, каждая из которых является копией третьей записи.Это продолжается для всех 1300 записей, в результате чего получается 1300 идентичных записей, каждая из которых является последней записью в XML.
Вот код:
var rowRecord = new Array();
var dataSet = new Array(rowRecord);
function getAjaxTridionInfo() {
var xmlFilename = 'filename.xml';
// make ajax call here, create xml object
xmlData = new Ajax.Request(xmlFilename,{
method:'get',
onSuccess: function(transport) {
var dataObj = transport.responseXML;
var vRoot = dataObj.getElementsByTagName('Items')[0];
for (var i=0; i<vRoot.childNodes.length; i++) {
if (vRoot.childNodes[i].nodeType == 1) {
var tridItem = vRoot.childNodes[i];
rowRecord[0] = tridItem.childNodes[0].firstChild.nodeValue.substring(26);
rowRecord[1] = tridItem.childNodes[1].firstChild.nodeValue;
rowRecord[2] = tridItem.childNodes[2].firstChild.nodeValue;
rowRecord[3] = rowRecord[1]+"/"+rowRecord[2];
rowRecord[4] = false;
rowRecord[5] = "n/a";
rowRecord[6] = "n/a";
rowRecord[7] = false;
rowRecord[8] = "n/a";
rowRecord[9] = "n/a";
//do some other processing here to determine rowRecord[4] - [9]
dataSet.push(rowRecord);
rowCount += 1;
}
}
//call next function here
},
onException: function(transport, exception) {
throw(exception);
alert('There has been a problem performing the Ajax call');
}
}
);
}
Любая помощь или предложения будутбыть оцененным.