どうもフロントエンドエンジニアのまさにょんです!
今回は、JavaScriptのArrayメソッドの代表格、forEachで最後に何か特定の処理をしたい場合の記述方法について共有しておきます。
考え方としてはシンプルで、事前にループをcountする変数を用意して、forEach内で++して、Array.length と 一致する状態(ループのLast)になったら処理を実行すると言った実装方法です。
【2022/7/30 追記】次の記事で、forEach()の第二引数であるindexを使って制御する方法も記述しているのでぜひCheckしてみてください!
Sample-Code
const saitama = [
"robotama",
"momo",
"hakutou",
"tama",
"milk",
"apple",
"saitama"
];
let loopTimes = 0;
const saitamaLength = saitama.length;
console.log({saitamaLength}); // 出力結果: 7
saitama.forEach( tama => {
loopTimes++;
if(saitamaLength === loopTimes) saitama.splice(-1); // forEachがLastの時に実行される!
});
console.log({saitama}); // 出力結果: ['robotama', 'momo', 'hakutou', 'tama', 'milk', 'apple']
console.log("埼玉・Arrayの長さ", saitama.length); // 出力結果: 埼玉・Arrayの長さ 6
まとめ
- 事前にループをcountする変数を用意して、forEach内で+1する。
- forEachする配列のlengthと、ループのcountが一致したら処理を実行する条件文を記述する。