[解決済み] UnderscoreJSを使用して配列から項目を削除する
2022-02-19 08:26:18
質問
次のようなコードがあるとします。
var arr = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}];
で、id = 3 の項目を配列から削除したいのです。スプライシングせずにこれを行う方法はありますか?アンダースコアかそのようなものを使用して何かかもしれませんか?
ありがとうございます。
解決方法は?
JavaScriptを使うだけです。 オブジェクトのプロパティで配列からオブジェクトを削除する .
underscore.js を使って
.findWhere
と
.without
:
var arr = [{
id: 1,
name: 'a'
}, {
id: 2,
name: 'b'
}, {
id: 3,
name: 'c'
}];
//substract third
arr = _.without(arr, _.findWhere(arr, {
id: 3
}));
console.log(arr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
ただし、この場合はいずれにせよ新しい配列を作成することになるので、単純に
_.filter
またはネイティブの
Array.prototype.filter
関数(他の質問で示したのと同じ)を使用します。そうすれば、このように2回繰り返す可能性がある代わりに、1回だけ配列に対して反復処理を行うことができます。
配列を変更したい場合
インプレース
を使用する必要があります。
.splice
. これは他の質問でも示されていることですが、undescoreはそのための便利な機能を提供していないようです。
関連
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] 1...N を含む配列の作成方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?
-
[解決済み】JavaScriptで配列の要素を削除する - delete vs splice
-
[解決済み] オブジェクトのプロパティで配列からオブジェクトを削除する