私は基本的にうまく動作するように見える次のコードを持っています。JS console.logメソッドは2回の値を出力します
S(大文字と小文字を区別)で始まるすべての名前をコンソールに出力することを目的としています。
let names = ['Selma', 'Yirma'];
let sNames = [];
names.forEach((e)=>{
if (e.charAt(0) === 'S') {
sNames.push(e);
}
console.log(sNames);
});
Googleクロームコンソールでコードを使用しましたが、「セルマ」が2回表示されました。何故ですか?なぜ一度だけではないのですか?
から?ループの最終結果のみを表示する場合は、ループの後にlog文を移動します。 (あなたが新しい配列を作るために '.forEach()'の代わりに '.filter()'を考えたことがありますか?また 'e.charAt(0)'ではなく 'e [0]文字列の最初の文字を取得します。) – nnnnnn
うわー、ループ内の 'console.log'を置くという概念を考えていなかった、私はそれを逃したし、ループの各反復は、結果に影響を与えるだろう状況に思いませんでした'console.log'によって。私はこの啓蒙のためにあなたに非常に感謝します! – Arcticooling
'filter()'は考慮していません。これはエクササイズの一部です。配列から必要な文字列をフィルタリングするための 'filter()'メソッドを知っています。 – Arcticooling