javascript – 如何使角度$filter过滤区分大小写的字符串比较器

前端之家收集整理的这篇文章主要介绍了javascript – 如何使角度$filter过滤区分大小写的字符串比较器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我一直在尝试在角度控制器中制作过滤器,在过滤数组时区分大小写.

我的数据如下:

var stoneArr = 
[
    {
        "stone_name": "Diamond","id": 16
    },{
        "stone_name": "Ruby","id": 17
    },{
        "stone_name": "Sapphire","id": 18
    },{
        "stone_name": "Emerald","id": 19
    }
];

我的HTML输入如下:

required>

我在控制器中的过滤器是:

var stoneObj = $filter('filter')(stoneArr,{stone_name:$scope.propertyName},true);

这里的陷阱是当我在输入字段中输入“diamond”时

$scope.propertyName = "diamond";

过滤器与此字符串不匹配“Diamond”.

我不想从等式中删除完全匹配条件(true),如下所示:

var stoneObj = $filter('filter')(stoneArr,{stone_name:$scope.propertyName}); //This won't work for me

这对我不起作用,因为我想匹配确切的字符串来过滤数据.并且数据将具有唯一的“stone_name”值.此外,我不想使用任何循环,因为数组长度将超过1000.无论如何我能做到这一点吗?

最佳答案
尝试使用匹配函数来获得不区分大小写的匹配:

var stoneObj = $filter('filter')(stoneArr,function (item) {
    return item.stone_name.toLowerCase() == $scope.propertyName.toLowerCase();
},true); 

猜你在找的JavaScript相关文章