хорошо.Вы должны понимать, что Array, Objects, Functions и т. Д. Являются ссылками в javascript (только Numbers (Int, Floats и т. Д.) И Strings передаются «по значению», что означает, что значение копируется / дублируется)!если у вас есть var a=[];
, скажем var b=a
и добавьте b.push("bla")
, то при появлении предупреждения a появится запись «bla», даже если вы добавили ее в b.Другими словами;а и б - это javascript, как записка на бритье от мамы, в которой говорится: «Сандвич слева для тебя».И тогда вы знаете, что взять левый, а не какой-нибудь случайный бутерброд из холодильника.Она также могла бы написать еще одну записку (переменная b) на двери вашего дома, чтобы вы знали, куда идти и искать сэндвич, если вы спешите.Если бы она сунула бутерброд к двери ... ну, это было бы неприятно.И JS думает так же об этом:)
, поэтому решение вашей проблемы заключается в следующем:
function test(){
var super_array =[];
for (var i=1;i<=3;i++){
var subarray=[];
for (var u=1;u<=4-i;u++){
sub_array.push(u);
super_array.push(subarray);
}
}
alert(super_array);
}
, переопределив подмассив, вы создаете новую ссылку.Так что переменная b (вторая нота на двери дома) теперь указывает в направлении другого сэндвича - возможно, сэндвича с отцом.
Я надеюсь, что смогу помочь вам понять это.