0
0

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のオブジェクトをループさせる

Posted at

javascriptで結構需要がある処理だと思われるオブジェクトのループについてです。

オブジェクトはforEachできない

forEachは配列に対して動作するので

let obj = {
  name: 'Jhon',
  age: 20,
  message: 'Hello'
}

上記のようなオブジェクトは
obj.forEach(e => {})とするとエラーになります。

どうするか

Object.keys()ってのを使います。

let obj = {
  name: 'Jhon',
  age: 20,
  message: 'Hello'
}

Object.keys(obj).forEach((e) => {
  console.log(e)
  console.log(obj[e])
})

こうすることでenameagemessageとキーが入ってきます。
なのでobj[e]としてやれば値が取得できます。
またforEachの第二引数を使って

Object.keys(obj).forEach((e) => {
  console.log(e)
  console.log(this[e])
}, obj)

のようにするとループ内のthisobjが扱えます。
ループ内の関数で外の変数参照させたくないって思う方はこちらを使いましょう。

まとめ

オブジェクトをループで処理したいならObject.keys()を使いましょう。
オブジェクトをループで回すこと自体が設計ミスなのかもしれませんが、共通処理であったりはループでちゃちゃっと書きたかったりするので利用シーンは結構あると思います。

0
0
3

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?