angularjs判断一个数组对象是否包含一个字符串

新手上路,请多包涵

这是我的代码,我想检查数组是否包含这个特定的字符串“Identicon”。我正在寻找一行代码作为解决方案,我只想检查 if 条件。

  $scope.profileImageOptions = [
                      {
                Type: "Identicon",
                Code: "identicon"
            },
            {
                Type: "MonsterID",
                Code: "monsterid"
            },

        ];

    if($scope.profileImageOptions.indexOf($rootScope.settings.defaultImage) >-1)
{
    console.log('ok');

    }

原文由 Lakmi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您可以结合使用 includes 方法和 some 方法。

some 方法接受参数 a callback 提供的函数适用于 array 中的每个项目。

 profileImageOptions = [
            {
                Type: "Identicon",
                Code: "identicon"
            },
            {
                Type: "MonsterID",
                Code: "monsterid"
            },

];
var exist=profileImageOptions.some(function(item){
  return item.Type.includes("Identicon");
});
console.log(exist);

此外,您可以使用 arrow function 来简化您的代码。

 profileImageOptions.some(item => item.Type.includes("Identicon"))

原文由 Mihai Alexandru-Ionut 发布,翻译遵循 CC BY-SA 4.0 许可协议

你可以这样做:

 <!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="personCtrl">

<p>The name is {{ result[0].Type == "Identicon" ? "OK" : "Not OK"}}</p>

</div>

<script>
angular.module('myApp', []).controller('personCtrl', function($scope) {
$scope.profileImageOptions = [
                      {
                Type: "Identicon",
                Code: "identicon"
            },
            {
                Type: "MonsterID",
                Code: "monsterid"
            },

        ];

        $scope.result = $scope.profileImageOptions.filter(function(res){
        return res.Type ==  "Identicon";});
});
</script>

</body>
</html>

检查 示例

原文由 sujeet kumar srivastava 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题