2011.07.24
■[JS] 配列のコピーは引数なしの concat() か slice() で行う
配列のコピーは引数なしの concat() か slice() で行なう。slice() は、Array.prototype.slice.call(arguments) や Array.slice().sort() といったイディオムで知っていた。concat() でも同じ理屈でコピーできることを、書籍「ハイパフォーマンスJavaScript」のサンプルコードで知ったので、Web 日記に投稿。
var a1 = ["a", "b", "c"], a2 = a1.concat(); a1 = "hoge"; console.log(a1); //=> hoge console.log(a2); //=> ["a", "b", "c"] var a3 = ["d", "e", "f"], a4 = a3.slice(); a3 = "fuga"; console.log(a3); //=> fuga console.log(a4); //=> ["d", "e", "f"]
