2016-11-16 2 views
0

Привет Я разрабатываю приложение MVC4 с помощью jquery. У меня в моем коде есть следующий массив. Это сравнивается, если все элементы массива равны или нет. Если массив равен, он возвращает true, а возвращает false. Это мой код.Как проверить, соответствуют ли все значения в массиве jquery одной заданной строке?

var list = new Array(); 
      $('input[id=Status]').each(function (i, item) { 
       list.push($(item).val().trim()); 
      }); 
      var statusCheck=!!list.reduce(function(a, b){ return (a === b) ? a : NaN; }); 
      if(statusCheck==true) 
      { 
       fun_toastr_notify('success', 'Please verify the documents'); 
       e.preventDefault(); 
      } 

I expect the result as below. I want to return true only when all the elemets in the array are equal to "Not Verified". 
var list = ["Not Verified", "Not Verified", "Not Verified"] => result: "true" 
var list = ["Verified", "Verified", "Verified"] => result: "false" 
var list = ["Not Verified", "Verified"] => result: "false" 

Однако я хочу, чтобы вернуться верно только если все элементы равны, и каждый элемент должен быть равен определенной строки, такие как «не подтвержден». Я хочу сделать сравнение с конкретной строкой. Например, если все элементы списка равны Verified, он возвращает true, но я хочу, чтобы это произошло только тогда, когда все элементы равны определенной строке «Не проверено». Я пробовал, как показано ниже.

var statusCheck=!!list.reduce(function(a, b){ return (a.val=='Not Verified' === b.val=='Not Verified') ? a : NaN; }); 

Выше строки кода возвращает true, когда элементы списка «проверены».

Может ли кто-нибудь сказать мне несколько ценных предложений по этому вопросу. Спасибо за ваше время.

ответ

1

Мне кажется, вам нужно использовать Array.prototype.every:

["Not Verified", "Not Verified", "Not Verified"].every(function (value) { return value === "Not Verified"}); // true 
["Verified", "Verified", "Verified"].every(function (value) { return value === "Not Verified"}); // false 
["Not Verified", "Verified"].every(function (value) { return value === "Not Verified"}); // false 

Пожалуйста, проверьте this documentation

+0

я только что нашел, как ниже var te mp = list.every (elem => elem == 'Not Verified'); –

+0

Я ссылаюсь на эту статью https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/every и работает как очарование, и я могу видеть, что мы отвечаем на совпадения. Спасибо за ваше драгоценное время. –

1

вы можете использовать уникальную функцию здесь

var a = ["verified","verified","verified"]; 
 
var b = ["verified","nonverified","verified"]; 
 

 

 
function checkIfSame(key,arr){ 
 
    var uniq = $.unique(arr); 
 
    if(uniq.length==1 && uniq[0]==key){ 
 
     return true; 
 
    }else { 
 
    return false; 
 
    } 
 
} 
 

 
console.log(checkIfSame("verified",a)); 
 
console.log(checkIfSame("verified",b));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Смежные вопросы