配列マップを使ったif条件付きフィルタリング
2023-08-09 18:44:35
質問
私は、保存のためにサーバーに送信する準備をするために、オブジェクトをもう少しフィルタリングするために、配列マップを使用しようとしています。私は1つのキー値にフィルタリングすることができ、それは素晴らしいですが、私はそれをさらに1つのステップに進め、内部のブールに対してそれらをチェックしたいです。
というわけで、今私が持っているのはこんな感じです。
$scope.appIds = $scope.applicationsHere.map( function(obj){
if(obj.selected == true){
return obj.id;
}
});
これはidを取り出すには素晴らしい機能ですが、selectedの値が==falseの場合はこの新しい配列に入れたくないので、さらにフィルタリングするために条件を付けました。しかし、.selected==falseのidはまだ配列に残っていて、その値はnullになっています。つまり、オブジェクトに4つの項目があり、そのうちの2つがfalseの場合、次のようになります。
appIds = {id1, id2, null, null};
私の質問は - ヌルがそこに置かれることなく、これを行う方法はありますか?読んでくださってありがとうございます。
どのように解決するのですか?
あなたが探しているのは
.filter()
関数を探しています。
$scope.appIds = $scope.applicationsHere.filter(function(obj) {
return obj.selected;
});
これは、オブジェクトを含む配列で、そのプロパティが
true
(またはtruthy)であるオブジェクトのみを含む配列を生成します。
編集 そうですね、jAndyさんがコメントで指摘されているように、フィルタリングしてquot;id"の値だけを抜き出すのは、そうでしょう。
$scope.appIds = $scope.applicationsHere.filter(function(obj) {
return obj.selected;
}).map(function(obj) { return obj.id; });
いくつかの関数ライブラリ(例えば
機能的な
のように、私の意見では十分な愛情を受けていないもの) には
.pluck()
関数がありますが、ネイティブの JavaScript はそのようなツールのかなり少ないセットを持っています。
関連
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] 新しい配列を作成せずに、既存のJavaScript配列を別の配列で拡張する方法
-
[解決済み] Javascriptの配列に、指定された値に等しい属性を持つオブジェクトが含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Angular:*ngClassを使った条件付きクラス
-
[解決済み] JavaScript を使用して配列からオブジェクトを削除する
-
[解決済み] オブジェクトの配列を属性に基づいてフィルタリングする方法は?
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】配列のマップとフィルタの同時実行
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] ECMAScriptとは?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] 各オブジェクトに?重複
-
[解決済み] javascriptでオプションのパラメータを扱う