1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

javaScriptのArrayをまとめる

Posted at

#初めに
Arrayに対する理解が曖昧だったため改めて整理することにした、

##Array
Arrayオブジェクトは、配列型の値を扱うためのオブジェクト。
配列に対して要素の追加削除結合並べ替えなどを行うための機能を提供する。

###生成
生成の方法は、①リテラル表現で生成する方法と②コンストラクタで生成する方法がある。
####①リテラル表現

array.js
var ary = ['本田','香川','岡崎'];

####②コンストラクタ

array.js
var ary = new Array('本田','香川','岡崎');

####どちらを使うか
例えばコンストラクタで生成する場合、下記はどのような意味を持つだろうか?

array.js
var ary = new Array(10);

考えられるのは「長さが10の配列」か「10という要素を持つ配列」のどちらか。

正解は「長さが10の配列」である。

この様に、コンストラクタで生成してしまうと可読性が下がるので、配列リテラルで生成するほうが良い
なお、空の配列を作る方法は下記である。

array.js
var ary = [];

###代表的なArrayオブジェクトのメンバー(一部)

array.js
var ary = ['本田','香川','岡崎'];
var ary2 = ['遠藤','長谷部','長友'];

//基本形
console.log(ary);                      //(3) ["本田", "香川", "岡崎"]
console.log(ary.length);               //3 配列のサイズ
console.log(Array.isArray(ary));       //true 配列かどうか
console.log(ary.indexOf(`岡崎`))       //2 要素のキーの開始位置を取得

//加工
console.log(ary.concat(ary2));         //(6) ["本田", "香川", "岡崎", "遠藤", "長谷部", "長友"]  //配列の連結

//追加と削除
console.log(ary.pop(),ary);            //岡崎 ←削除した要素 //(2) ["本田", "香川"] ←削除後
console.log(ary.push('内田'),ary);      //4 ←追加後の要素数 // (4) ["本田", "香川", "岡崎", "内田"] ←追加後の配列


##代表的なArrayオブジェクトのメンバー(コールバック)
Arrayオブジェクトで代表的なコールバック系のメソッドを3つ説明する。

###forEach
forEachメソッドは指定した関連で順に処理するメソッドである、
①配列の要素を順番に取り出す。
②ユーザー定義関数のcallbackに渡す。
③渡された要素を処理する。

foreach.js
var ary = ['本田','香川','岡崎'];

ary.forEach(function(value, index, array){
            console.log(value);
            console.log(index);
            //console.log(array)
        })
//本田
//0
//香川
//1
//岡崎
//2

#####第一引数 valueは要素の値
#####第二引数 indexはインデックスの番号
#####第三引数 arrayは元の配列
なお、console.log(array)は毎回元の配列を吐き出す。(冗長になるのでコメントアウトした)

###map
mapメソッドは配列を指定された関数で加工することが出来る。
callbackで受け取る引数はforEachと同じだが、戻り値(return)は新しい配列を作るために必要になる。

map.js
var ary = ['本田','香川','岡崎'];

var member = ary.map(function(value, index, array){
                 return value+"選手";           
             })
console.log(member);  //(3) ["本田選手", "香川選手", "岡崎選手"]

もしreturnしなかったら…

map.js
var ary = ['本田','香川','岡崎'];

var member = ary.map(function(value, index, array){
             // return value+"選手";         
             })
console.log(member);  //(3) [undefined, undefined, undefined]

当然にundefinedになる。

###filter

指定された関数で個々の要素を判定し、条件に合致した要素だけを取り出すメソッド

filter.js
var ary = ['本田','香川','岡崎'];

var member = ary.filter(function(value, index, array){
                 return value.indexOf('') >= 0 
                 //indexOfは該当の文字があればその位置、なければ-1を返す。
             })
console.log(member);    //["本田"]

callbackがtrueを返した時だけ、その時の要素を配列に書き戻す。
上記では本田だけtrueになるので、本頼みの配列が出来上がる。

##終わりに
Arrayオブジェクトで使用できるコールバック関数は上記の他にsomeeverysort等がある。

##参考
javascript本格入門

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?