LoginSignup
0
0

More than 3 years have passed since last update.

【javascript】新しい配列メソッド

Posted at

こちらの記事は以下の書籍を参考にアウトプットとして執筆しました。

入門JavaScriptプログラミング

Array.fromで配列を作成する

argumentsオブジェクトは配列ではない

arugumentsは配列ではなく、配列風のオブジェクトである。

配列風とは、配列のようにlengthプロパティを持っていて、展示アクセスができ、forループによる処理もできるオブジェクトのこと

以下のコードはargumentsが配列でないためにエラーになる

function avg(){
  const sum=arguments.reduce(function(a,b){
    return a+b;
  })
  return sum/arguments.length;
}

出典:入門JavaScriptプログラミング

reduce

構文
arr.reduce(callback( accumulator, currentValue[, index[, array]] )[, initialValue])
callback引数 説明
accumulator callback値を蓄積する
currentValue 現在処理されている配列の要素
index 現在処理中の配列要素のインデックス。initialValueが指定されている場合は0から。そうじゃないなら1から
array reduce()が呼び出された配列
引数 説明
initialValue callbackの最初の呼び出しの最初の引数として使用する値

出典:Array.prototype.reduce()

配列風を配列に変換する

Array.fromの目的は配列風を配列に変換することで、配列風とはlengthプロパティを持つオブジェクトのこと
0からlengthまで適切なインデックス位置におかれ、文字列ではlengthプロパティに加えて、各文字のインデックスを示す数値のプロパティがある。このため文字列でArray.fromを呼び出すと文字の配列が返される。
これを使ってargumentsも配列にする。

NodeListを配列にする

document.querySelectorAllなどのDOMノードリストを返すようなオブジェクトでも配列に変換できる。
というかlengthプロパティを持つオブジェクトであれば何でもうまくいく

参考

入門JavaScriptプログラミング

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0