[解決済み] ES6 Fat Arrowを使用してオブジェクトの配列を.filter()する方法
2022-05-02 07:53:14
質問
ES6のarrow関数を
.filter
を使用して、大人(Jack & Jill)を返します。if文は使えないようです。
ES6でこれを行うには、何が必要ですか?
var family = [{"name":"Jack", "age": 26},
{"name":"Jill", "age": 22},
{"name":"James", "age": 5 },
{"name":"Jenny", "age": 2 }];
let adults = family.filter(person => if (person.age > 18) person); // throws error
(8:37) SyntaxError: unknown: Unexpected token (8:37)
|let adults = family.filter(person => if (person.age > 18) person);
私が作成したES5のサンプルです。
let adults2 = family.filter(function (person) {
if (person.age > 18) { return person; }
});
解決方法は?
<ブロッククオートif文が使えないようです。
アロー関数では 式 または a ブロック を本文とする。式を渡す
foo => bar
は次のブロックと同等です。
foo => { return bar; }
しかし
if (person.age > 18) person
は式ではありません。
if
は文です。したがって、もし
if
をアロー関数で使用することができます。
foo => { if (person.age > 18) return person; }
技術的には問題を解決していますが、これは紛らわしい使い方です。
.filter
なぜなら、出力配列に含まれるはずの値を返さなければならないことを示唆しているからです。しかし、このコールバックは
.filter
を返さなければなりません。
ブーリアン
つまり
true
または
false
は、その要素が新しい配列に含まれるべきかどうかを示します。
つまり、必要なのは
family.filter(person => person.age > 18);
ES5では
family.filter(function (person) {
return person.age > 18;
});
関連
-
Vueの「データを聴く」原則を解説
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] JavaScriptで配列を空にするにはどうしたらいいですか?
-
[解決済み] JavaScriptのオブジェクトの配列からidでオブジェクトを検索する
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
親子コンポーネント通信を解決する3つのVueスロット
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
JavaScriptのクロージャの説明
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。