filter
(HTML 要素ではなく) AngularJS JavaScript 内で使用する方法の例を次に示します。
この例では、Country レコードの配列があり、それぞれに名前と 3 文字の ISO コードが含まれています。
このリストから特定の 3 文字コードに一致するレコードを検索する関数を書きたいと思います。
を使用せずに行う方法は次のfilter
とおりです。
$scope.FindCountryByCode = function (CountryCode) {
// Search through an array of Country records for one containing a particular 3-character country-code.
// Returns either a record, or NULL, if the country couldn't be found.
for (var i = 0; i < $scope.CountryList.length; i++) {
if ($scope.CountryList[i].IsoAlpha3 == CountryCode) {
return $scope.CountryList[i];
};
};
return null;
};
うん、それは何も悪いことではありません。
しかし、以下を使用して、同じ関数がどのように見えるかを次に示しますfilter
。
$scope.FindCountryByCode = function (CountryCode) {
// Search through an array of Country records for one containing a particular 3-character country-code.
// Returns either a record, or NULL, if the country couldn't be found.
var matches = $scope.CountryList.filter(function (el) { return el.IsoAlpha3 == CountryCode; })
// If 'filter' didn't find any matching records, its result will be an array of 0 records.
if (matches.length == 0)
return null;
// Otherwise, it should've found just one matching record
return matches[0];
};
ずっときれい。
は結果として配列 (一致するレコードのリスト)をfilter
返すことに注意してください。したがって、この例では、1 つのレコードまたは NULL を返します。
お役に立てれば。