Проверьте, содержит ли цикл forEach значение

0

У меня есть следующий json

success {"fname": ["Поле fname требуется." ], "lname": ["Поле lname требуется." ], "email": ["Поле электронной почты обязательно". ], "password": ["Поле пароля требуется." ], "password_confirmation": ["Поле подтверждения пароля требуется". ]}

что я делаю, если это значение содержит поле, то console.log его. я сохранил json в данных var

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

Я пробовал.contains,.match, ничего не работает

  • 0
    Пожалуйста, просмотрите данные JSON, я заметил, что значение на самом деле является массивом.
Теги:

4 ответа

1
Лучший ответ

У вас также есть метод includes.

Здесь документ содержит: http://www.w3schools.com/jsref/jsref_includes.asp

И документ для IndexOf: http://www.w3schools.com/jsref/jsref_indexof.asp

Я лично считаю, что решение IndexOf немного грязно, поскольку оно не сделано для этого, но, похоже, это наиболее распространенное решение.

Вы можете также исследовать в StackOverflow, прежде чем спрашивать, вот ответ на ваш вопрос:

Как проверить, содержит ли строка подстроку в JavaScript?

1

Пытаться:

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

Это проверит, требуется ли в строке "поле".

  • 0
    я получаю эту ошибку: ionic.bundle.js: 25642 Ошибка типа: невозможно прочитать свойство 'indexOf' с нулевым значением
0

Если ваши JSON vales ["Поле --- обязательны"], и вы проверяете равенство строк с "поле обязательным", то ваше условие if никогда не будет оцениваться как true.

Вам нужно получить часть подстроки вашего значения, если это то, что вы хотите оценить. Вы можете использовать метод string split, search, 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" )...
0
angular.forEach(data, function(value, key){
  if(value.indexOf("field is required") > -1){
     console.log(key);
    }
 });
  • 0
    я получаю эту ошибку: ionic.bundle.js: 25642 Ошибка типа: невозможно прочитать свойство 'indexOf' с нулевым значением

Ещё вопросы

Сообщество Overcoder
Наверх
Меню