ずっと 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 }
]