如何在AngularJS中检查数组对象是否包含一个字符串

6

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

这是可能的代码:

if(array.indexOf("Identicon") !== -1) {
  // 如果数组包含 "Identicon" 字符串
}

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

        ];

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

    }

可能是以下问题的重复: 如何通过值或属性从对象数组中获取JavaScript对象 - Thanh Nguyen
@Lakmi,我的解决方案有效吗? - Mihai Alexandru-Ionut
@Nguyen Thanh 不行,因为我正在寻找一行代码。我从这篇帖子中得到了解决方案。谢谢。 - Lakmi
@Alexandru,是的,你的解决方案对我有效,谢谢。 - Lakmi
3个回答

6
你可以结合使用includes方法和some方法。 some方法接受一个回调函数作为参数,该函数将应用于array中的每个项。

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

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

此外,您可以使用箭头函数来简化您的代码。
profileImageOptions.some(item => item.Type.includes("Identicon"))

0

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

        ];
var result = arr.some(element => element.Type.includes('Identicon'));
console.log(result)

让我们在Javascript中使用some

$scope.profileImageOptions.some(element => element.Type.includes('Identicon'));

感谢您的帮助。 - Lakmi
很高兴知道 :) - taile

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>

请检查示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接