前提・実現したいこと
プロパティとしてno
とvalue
を持つオブジェクトの配列があったとします。
以下のようなイメージです。
js
1const hoge = [ 2 { 3 no: 0, 4 value: "" 5 }, 6 { 7 no: 1, 8 value: "" 9 } 10]
no
は0
始まりの連番で付番されている前提です。
この配列から任意のno
を持つ要素を除外した配列を作成(この辺りはfilter
でもreduce
でも何でもいいです)した際に、飛び番となったno
を補正したいです。
実装自体はできているのですが、より効率の良い方法がないかご意見いただければと思います。
該当のソースコード
自身で実装した限りではmap
を使った以下のような処理しか思いつきませんでした。
js
1// 削除されたno 2const deletedNo = 2; 3// 上記のnoが削除された後の配列 4const datas = [ 5 { no: 0, value: "hoge" }, 6 { no: 1, value: "fuge" }, 7 { no: 3, value: "puni" }, 8 { no: 4, value: "test" } 9]; 10 11// noを補正する 12const noFormattedDatas = datas.map((d) => { 13 let res = d; 14 // deletedNoより大きいnoの場合、飛び番になるはずなので減算する 15 if(d.no > deletedNo) res.no -=1; 16 return res; 17}); 18 19console.log(noFormattedDatas);
出力
[ { no: 0, value: 'hoge' }, { no: 1, value: 'fuge' }, { no: 2, value: 'puni' }, { no: 3, value: 'test' } ]
以上、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/13 08:27