Всем привет!
Для любителей сломать себе мозг - сохраните нижеследующее в файл *.hta и запустите. По-моему, забавный косяк. Буду благодарен за идею, как исправить.
<html>
<head>
<title>Untitled</title>
</head>
<body>
Fucked Push changes all new rows!
<script>
var arr1 = [[10,1,2],[11,4,5],[12,7,8]];
var oneLASrow = new Array;
while (arr1[arr1.length-1][0] < 20)
{
oneLASrow[0] = arr1[arr1.length-1][0] + 1;
for(var i=1; i < arr1[0].length; i++)
{
oneLASrow = -1;
}
arr1.push(oneLASrow);
alert (arr1[0]+ "\n" + arr1[1] + "\n" + arr1[2] + "\n" + arr1[3]+ "\n" + arr1[4] + "\n" + arr1[5] + "\n" + arr1[6]);
}
</script>
</body>
</html>
push и unshift в многомерных массивах - найди косяк в 10 строчках
Модератор: Duncon
упростил дальше некуда - таже фигня... Значит дело не в push и даже не в length...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
affFGGGGG
<script>
var arr1 = [[22,1,2],[33,4,5],[44,7,8]];
var oneLASrow = [13,-1,-1];
var g = arr1.length;
oneLASrow[0] = 55;
arr1[g] = oneLASrow;
alert(g +" " + arr1[g][0]);
g=g+1;
oneLASrow[0] = arr1[g-1][0] + 1;
arr1[g] = oneLASrow;
alert(g +" " + arr1[g][0]);
g+=1;
oneLASrow[0] = arr1[g-1][0] + 1;
arr1[g] = oneLASrow;
alert(g +" " + arr1[g][0]);
alert (arr1[0]+ "\n" + arr1[1] + "\n" + arr1[2] + "\n" + arr1[3]+ "\n" + arr1[4] + "\n" + arr1[5] + "\n" + arr1[6]);
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
affFGGGGG
<script>
var arr1 = [[22,1,2],[33,4,5],[44,7,8]];
var oneLASrow = [13,-1,-1];
var g = arr1.length;
oneLASrow[0] = 55;
arr1[g] = oneLASrow;
alert(g +" " + arr1[g][0]);
g=g+1;
oneLASrow[0] = arr1[g-1][0] + 1;
arr1[g] = oneLASrow;
alert(g +" " + arr1[g][0]);
g+=1;
oneLASrow[0] = arr1[g-1][0] + 1;
arr1[g] = oneLASrow;
alert(g +" " + arr1[g][0]);
alert (arr1[0]+ "\n" + arr1[1] + "\n" + arr1[2] + "\n" + arr1[3]+ "\n" + arr1[4] + "\n" + arr1[5] + "\n" + arr1[6]);
</script>
</body>
</html>