teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/01/03 21:33

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  [MDN Arguments](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/arguments)
2
2
 
3
3
  Arguments は length プロパティを持ったArray風オブジェクトになります。
4
+ 順番に引数の値を取り出したい場合は Array に矯正する必要があります。
4
5
 
5
6
  ```
6
7
  // 古典的手法(MDN にも掲載されている手法)
@@ -19,4 +20,13 @@
19
20
  function func4(...args) {
20
21
  console.log( args );
21
22
  }
23
+ ```
24
+
25
+ こちらは、受け取った引数の値をオブジェクトにする例
26
+ ```javascript
27
+ function d(...args) {
28
+ let oj = args.reduce( (acc, arg, idx) => {acc[idx]=arg; return acc}, {});
29
+ console.log( oj )
30
+ }
31
+ d("hoga","hogi","hogu")
22
32
  ```

1

typo のため

2020/01/03 21:33

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  ```
6
6
  // 古典的手法(MDN にも掲載されている手法)
7
7
  function func2() {
8
-  let args = Array.prototype.slice(arguments, 0)
8
+  let args = Array.prototype.slice.call(arguments, 0)
9
9
  console.log( args );
10
10
  }
11
11