Filter功能的工作方式



我在一个例子中有这几行代码。教程解释了筛选函数匹配并返回匹配的国家/地区记录。其中&entry.name是如何设置的。

myApp.controller('detailcontroller', function($scope, $routeParams, $http) {
  $scope.name=$routeParams.countryname;
  $http.get('countries.json').success(function(data) {
     var country =data.filter(function(entry) {
        return entry.name === $scope.name;
     }) [0];

  console.log(country);
});
});

它不是"设置的"。您可以为筛选函数指定一个迭代器(回调)函数。

文件上说:Function to test each element of the array. Return true to keep the element, false otherwise.

所以基本上,entry表示数组的一个元素。对于数组中的每个元素,您的函数将以该元素为参数进行调用(如果您有一个国家的数组,则输入将是第一个国家,然后是第二个国家,依此类推)

也许这对你来说更容易理解:

var testIfCountryMatches = function(country){
    console.log("is "+country+" France ? : "+(country.name === "France"));
    return country.name === "France";
}
var matchingCountries = data.filter(testIfCountryMatches);
var fr = matchingCountries[0];

最新更新