Передача имени массива через параметр функции
есть функция вида
function gamePlayersStart(){ for (var i = 0; i < fieldSizeX * fieldSizeY - 3; i++){ playerUnits[i] = new Image(); playerUnits[i].gameCoordX = a; playerUnits[i].gameCoordY = b; //fieldHex[i][j].gameNumber = i + '' + j + ''; playerUnits[i].owner = "player"; playerUnits[i].width = hexSize/1.5; playerUnits[i].height = hexSize/1.5; playerUnits[i].style.position = "absolute"; playerUnits[i].style.left = +fieldHex[a][b].style.left.slice(0, -2) + hexSize/4 + 'px'; playerUnits[i].style.top = +fieldHex[a][b].style.top.slice(0, -2) + hexSize/4 + 'px'; playerUnits[i].onclick = test; playerUnits[i].src = "image/infantry.png"; document.body.appendChild(playerUnits[i]); fieldHex[a][b].src = "image/hex_blue.png"; } } необходимо сделать её универсальной, чтобы имя массива playerUnits[i] можно было передать при вызове функции, примерно так gamePlayersStart(name). И масив получался вот такой name[i]= new Image(); и тд. Потому что писать для каджого игрока отдельную функцию это грех. |
function gamePlayersStart(playerUnits){ |
эта мысль пришла первой, но не работает. Не принимает массив вот такой параметр как своё имя
|
Самовар,
var arr = [1,2,3]; var arr1 = [4,5,6]; function fn(arr){ alert(arr); } fn(arr); fn(arr1); принимает! |
это другое. У вас параметр функции массив. Мне нужно, чтобы параметр функции принимался как имя массива в функции.
gamePlayersStart(name) { ... name[i] = 111; ... } чтобы при вызове функций gamePlayersStart(name1), gamePlayersStart(name2), gamePlayersStart(name3) создались три разных массива name1, name2 и name3. |
чтобы не создвать 3 функции для трех массивов, а 1 функция создавал 3 разных массива в зависимости от имени массива, переданного в параметре функции name
|
function fn(){ i = 1; window['playerUnits'+i] = [1,2,3]; } fn(); alert(playerUnits1) для глобальной области |
Самовар,
может тогда лучше один объект, в котором аргумент свойства его, а массивы значения этих свойств? |
Часовой пояс GMT +3, время: 03:08. |