プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2021/09/03

[JavaScript] map で配列の値とインデックスを同時に取得する

event_note2021/09/03 8:39

ずっと C# で Linq を使っていたので、Linq の Select と同じ感覚で JavaScript の map を使うとちょっとはまります。

環境

  • Node.js v14.17.4

サンプルコード

ダメなパターン

JavaScript にはタプルがないので、Linq の Select と同じように書いてもダメです。

let array = ["hoge", "fuga", "piyo"]
let targets = array.map((v, i) => (v, i));
console.log(targets)
[ 0, 1, 2 ]

解決方法

以下のようにオブジェクトにして返せば OK です。

let array = ["hoge", "fuga", "piyo"]
let targets = array.map((v, i) => ({
  value: v,
  index: i
}));
console.log(targets)
[
  { value: 'hoge', index: 0 },
  { value: 'fuga', index: 1 },
  { value: 'piyo', index: 2 }
]