私はPHPの経験しかありませんが、これには簡単な答えがあると確信しています。"my_pizza" として関数に渡し、"my_pizza" のみを変更すると、"pizza" 配列が変更されるのはなぜですか? 関数の外で関数に渡す元の配列を保持するにはどうすればよいですか? 関数の実行が終了すると、ピザの配列は変更されていないはずです。文字列変数 (パイ) を変更すると、配列とは異なり、関数の実行後も同じままになることに気付きました。
要するに、最初の結果セットが 2 番目の結果セットと同じになるようにしたいのです。
var pizza = [];
pizza.push('crust');
pizza.push('ham');
var pie = "apple"
function bake_goods(my_pizza, my_pie){
console.log(my_pizza);
console.log(my_pie);
delete my_pizza['1'];
my_pie = "peach";
console.log(my_pizza);
console.log(my_pie);
}
//first run
bake_goods(pizza, pie);
//console logs
//['crust','ham']
//apple
//['crust']
//peach
//second run
bake_goods(pizza, pie);
//console logs
//['crust']
//apple
//['crust']
//peach