web-dev-qa-db-ja.com

angular方法でオブジェクトの配列内のプロパティによってオブジェクトを検索します

私は次のような配列を持っています

var myArray = [{'id':'73','name':'john'},{'id':'45','name':'Jass'}, etc.]

配列からこの特定のオブジェクトを選択する方法はid 73です。 grep jQueryでこれを簡単に行うことができると思いますこれを行うのですか?

angularを使用してアプリを開発するほとんどのユーザーは、常にオブジェクトの配列(主にテーブル用)からデータを取得するため、このためのヘルパー関数が必要ですか?

オブジェクトの配列を更新することで、行のIDで行のデータを変更できます。

これをビューにバインドしたくありません。データを操作し、関数を使用してデータを更新したい。

例えば。表のリストがあります。エンドユーザーがテーブルの行を編集する場合、オブジェクトのIDがあるため、エンドユーザーが保存を押した後、配列を更新してからテーブルリストに戻る必要があります。

41
rram

角度のfilterを使用できます https://docs.angularjs.org/api/ng/filter/filter

コントローラーで:

$filter('filter')(myArray, {'id':73}) 

またはあなたのHTMLで

{{ myArray | filter : {'id':73} }}
71
M B

プレーンなJavaScriptはどうですか? Array.prototype.filter()の詳細

var myArray = [{'id': '73', 'name': 'john'}, {'id': '45', 'name': 'Jass'}]

var item73 = myArray.filter(function(item) {
  return item.id === '73';
})[0];

// even nicer with ES6 arrow functions:
// var item73 = myArray.filter(i => i.id === '73')[0];

console.log(item73); // {"id": "73", "name": "john"}
41
Timo

完全なM B回答については、HTMLの配列から既にフィルター処理されたこのオブジェクトの特定の属性にアクセスする場合、次のように行う必要があります。

{{ (myArray | filter : {'id':73})[0].name }}

したがって、この場合、HTMLでjohnを出力します。

よろしく!

6
David Corral

私のために働く解決策は次のとおりです

$filter('filter')(data, {'id':10}) 
0