Цитата:
|
Сообщение от iNils
 Код:
arrayN = function (arrayName, arrayD, arg) {
if (!this[arrayName]) {
this[arrayName] = [];
}
var arrayTemp = this[arrayName];
var len = arrayD.length - 1;
for (var i = 0; i < len; i++) {
if (!arrayTemp[arrayD[i]]) {
arrayTemp[arrayD[i]] = [null];
}
arrayTemp = arrayTemp[arrayD[i]];
}
arrayTemp[arrayD[len]] = arg;
};
arrayN ('c', [1, 1], 50);
arrayN ('a', [5, 2, 3, 6], 100);
arrayN ('a', [5, 2, 3, 7], 200);
trace (c[1][1]);
trace (a[5][2][3][6]);
trace (a[5][2][3][7]);
|
А вот еще вопрос. Не могу сообразить, как изменить вашу функцию так, чтобы она создавала элементы глобальных массивов...
Вызов в стиле
arrayN ('_global.c', [1, 1], 50); при проверке содержимого как
trace (c[1][1]); дает undefined.
А при при попытке сделать так

Код:
_global.c=new Array();
arrayN ('c', [1, 1], 50);
получается так что глобальными создаются элементы основного массива, а элементы второй размерности - не глобальные.