JavaScriptで複数の配列に対しforループ



Page content

JavaScriptで配列を二つ見ながらループしたかった。


BTCエージェント forエンジニア
BTCエージェント forエンジニア


Pythonだとzip

Pythonだと、zip関数を使って書ける。

chiba = ["10", "10", "10", "3"]
hyogo = ["1", "0", "1", "2"]

for c, h in zip(chiba, hyogo):
    print(f"{c}-{h}")

JavaScriptにzip的なものは実装しないと無さそうだったので、他の方法を使う。


JavaScriptのループ

  • 基本的なやつ

    var chiba = ["10", "10", "10", "3"]
    for (var i = 0; i < chiba.length; i++) {
    console.log(chiba[i])
    }
    
  • for in

    • オブジェクトのプロパティ名を取り出す

      var chiba = ["10", "10", "10", "3"]
      for (var i in chiba) {
      console.log(chiba[i])
      }
      
  • for of

    • オブジェクトのプロパティ値を取り出す

      var chiba = ["10", "10", "10", "3"]
      for (var i of chiba) {
      console.log(i)
      }
      
  • forEach

    var chiba = ["10", "10", "10", "3"]
    chiba.forEach(funcrtion(value){
    console.log(value)
    })
    

JavaScriptで複数オブジェクトのループ

今回のケースに関しては、基本のやつで特に問題なく動く。

var chiba = ["10", "10", "10", "3"]
var hyogo = ["1", "0", "1", "2"]
for (var i = 0; i < chiba.length; i++) {
    console.log('%s-%s', chiba[i], hyogo[i])
}

連想配列にしてループしてもできる。

var chiba = ["10", "10", "10", "3"]
var hyogo = ["1", "0", "1", "2"]
var series = {}
for (var i = 0; i < chiba.length; i++) {
    series[chiba[i]] = hyogo[i]
}
for (k in series) {
    console.log('%s-%s', k, series[k])
}

おわり

まだ慣れておらず試行錯誤しながら書いていますが、もっといい方法ありそう。。