LoginSignup
0
1

More than 5 years have passed since last update.

javascript配列操作メモ

Last updated at Posted at 2018-12-05

javascriptメモ
毎回ググるなら自分でメモっておけばいいじゃない

配列をある条件でフィルターする

filter メソッド(MDN)

配列の1要素を引数にとり、真偽値を返すコールバックメソッドを引数で渡すことで、trueを返した要素のみで構成された配列を返却するメソッド。
以下の例だと、type=1のフルーツだけにフィルタする。

filter.js

    var ary = [
      { type: 1, name: 'りんご' },
      { type: 2, name: 'ぎゅうにく' },
      { type: 1, name: 'みかん' },
      { type: 3, name: 'きゃべつ' },
      { type: 1, name: 'どりあん' }
    ]

    var fruit = ary.filter((el) => {
      return el.type === 1
    })

    console.log(fruit)

配列にある要素が存在するか判別する

some メソッド(MDN)

配列の1要素を引数にとり、真偽値を返すコールバックメソッドを引数で渡すことで、trueを返す要素があるかどうかを真偽値で返却するメソッド。
配列の中でエラーフラグの立っているヤツはいるかな?とかを判定するのに使用するイメージ。
trueを返す要素があるとそこで探査が止まるので、ついでで全体に処理をしようとか考えてはいけない。

some.js

    var ary = [
      { type: 1, name: 'りんご' },
      { type: 2, name: 'ぎゅうにく' },
      { type: 1, name: 'みかん' },
      { type: 3, name: 'きゃべつ' },
      { type: 1, name: 'どりあん' }
    ]

    var isGyu = ary.some((el) => {
      return el.name === 'ぎゅうにく'
    })

    var isButa = ary.some((el) => {
      return el.name === 'ぶたにく'
    })

    console.log(isGyu)  // true
    console.log(isButa) // false

for each で処理する

forEach メソッド(MDN)

配列の1要素を引数にとるコールバックメソッドを引数に渡すことで、配列の各要素にたいしてコールバックで処理をする。
他の言語でよくあるfor eachだと、配列やリストの一要素が変数に代入されてループ内のブロックで処理するけれど、それがメソッドになっているイメージ。この形式もよくあるというか最近のトレンド?
コールバックメソッドは引数を3こまで指定できる。先頭から、配列の要素、インデックス、元の配列が渡される。やろうと思えばコールバックメソッドで配列の要素数を増減できそうだけど、やらないほうが吉だと思う。

forEach.js

    var ary = [
      { type: 1, name: 'りんご' },
      { type: 2, name: 'ぎゅうにく' },
      { type: 1, name: 'みかん' },
      { type: 3, name: 'きゃべつ' },
      { type: 1, name: 'どりあん' },
    ]

    ary.forEach((el) => {
      el.name = el.name + ' おいしい'
    })

    ary.forEach((el, index) => {
      console.log(index + ':' + el.name)
    })
0
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
0
1