以下func1()
でオブジェクトを配列に変換することができています。
js
1func1(); 2function func1() { 3 4 var obj = { 0:'hoge', 1:'huga', 2:'piyo' }; 5 6 console.log( Object.keys(obj).map(function (key) {return obj[key]}) ); 7 // Array(3) [ "hoge", "huga", "piyo" ] 8}
しかし下記func2()
のarguments
の場合、これはfunc1()
と同じオブジェクトであり、さらにfunc1()
と同じ操作をしているのに、結果が変わってしまうのはなぜですか?
一番最後の行にあるように// > Array ["0", 1, Array ["0", "1", "2"]]
という結果になってしまうのです。
そしてどのようにすれば、下記arguments
をfunc1()
と同じ配列にできますでしょうか?
js
1func2( 'hoge', 'huga', 'piyo' ); 2function func2() { 3 4 console.log( arguments ); 5 // > Object { 0:'hoge', 1:'huga', 2:'piyo' } 6 7 console.log( Object.keys(arguments).map(function (key) {return arguments[key]}) ); 8 // > Array ["0", 1, Array ["0", "1", "2"]] 9}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/04 13:55