我想要一個;返回[1,2,3],而不是[2,3],但如果我用凍結我只是得到「類型錯誤:0是隻讀」:一個數組與另一個數組相等。如何凍結一個而改變另一個?
var a=[];
function x(){
var b=[1,2,3];
a=b;
//Object.freeze(a);
var b2 = b.splice(0,1);
}
x();
a;
任何想法?
我想要一個;返回[1,2,3],而不是[2,3],但如果我用凍結我只是得到「類型錯誤:0是隻讀」:一個數組與另一個數組相等。如何凍結一個而改變另一個?
var a=[];
function x(){
var b=[1,2,3];
a=b;
//Object.freeze(a);
var b2 = b.splice(0,1);
}
x();
a;
任何想法?
製作數組的副本,而不是將參考保留在數組中,否則freeze
會影響兩個數組,因爲它們都相同。
// copy the array using slice method
a = b.slice();
偉大的解決方案。 – alexandros84
這是有趣的生活圈子是如何運行的,但閱讀有關ES6傳播經營者,我已經學會了一種方式來回答我的問題(發佈一個星期左右),而無需使用片(從建議在優良接受的答案):
var arr = [1,2,3];
var new_arr = [...arr]; // like arr.slice()
這裏有只有一個陣列 - '了'和'B'都** **引用它。 –
感謝您的評論。 – alexandros84