检查forEach循环是否包含值

时间:2016-07-22 07:37:58

标签: angularjs

我有以下json

  

成功{“fname”:[       “fname字段是必需的。” ],“lname”:[       “lname字段是必需的。” ],“电子邮件”:[       “电子邮件字段是必需的。” ],“密码”:[       “密码字段是必需的。” ], “确认密码”: [       “密码确认字段是必需的。” ]}

我这样做,如果值包含字段是必需的,那么console.log它。我将json保存在var data

 angular.forEach(data, function(value, key)
                {
                    if( value ==("field is required")){
                        console.log (key)
                    }
               })

我试过.contains,.match,什么都没有用

4 个答案:

答案 0 :(得分:1)

尝试:

                if( value.indexOf("field is required") > -1){
                    console.log (key)
                }

这将检查字符串是否需要"字段"。

答案 1 :(得分:1)

您还获得了包含方法。

此处的文档包含:http://www.w3schools.com/jsref/jsref_includes.asp

IndexOf的文档: http://www.w3schools.com/jsref/jsref_indexof.asp

我个人认为IndexOf解决方案有点脏,因为它不是为此做的,但它似乎是最常见的解决方案。

你也可以在询问之前研究StackOverflow,这是你问题的答案:

How to check whether a string contains a substring in JavaScript?

答案 2 :(得分:0)

如果您的JSON值是[“The --- field is required”]并且您正在使用“field is required”测试字符串相等性,那么您的if条件永远不会评估为true。

如果您想要评估条件,则需要获取值的子字符串部分。您可以使用字符串拆分,搜索,substr或其他字符串方法来获取值的该部分:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

您需要使用带有.match()或.search()的正则表达式。你也可以使用

 var idx = value.indexOf('field');
 var str = value.slice(idx);
 if( str == "field is required" )...

答案 3 :(得分:0)

angular.forEach(data, function(value, key){
  if(value.indexOf("field is required") > -1){
     console.log(key);
    }
 });