JS jQuery - check if value is in array

后端 未结 4 1277
野的像风
野的像风 2021-02-05 07:05

I am more of a PHP person, not JS - and I think my problem is more a syntax problem ..

I have a small jQuery to \"validate\" and check input value .

It works ok

相关标签:
4条回答
  • 2021-02-05 07:30

    The Array.prototype property represents the prototype for the Array constructor and allows you to add new properties and methods to all Array objects. we can create a prototype for this purpose

    Array.prototype.has_element = function(element) {
        return $.inArray( element, this) !== -1;
    };
    

    And then use it like this

    var numbers= [1, 2, 3, 4];
    numbers.has_element(3) => true
    numbers.has_element(10) => false
    

    See the Demo below

    Array.prototype.has_element = function(element) {
      return $.inArray(element, this) !== -1;
    };
    
    
    
    var numbers = [1, 2, 3, 4];
    console.log(numbers.has_element(3));
    console.log(numbers.has_element(10));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    0 讨论(0)
  • 2021-02-05 07:38

    You are comparing a jQuery object (jQuery('input:first')) to strings (the elements of the array).
    Change the code in order to compare the input's value (wich is a string) to the array elements:

    if (jQuery.inArray(jQuery("input:first").val(), ar) != -1)
    

    The inArray method returns -1 if the element wasn't found in the array, so as your bonus answer to how to determine if an element is not in an array, use this :

    if(jQuery.inArray(el,arr) == -1){
        // the element is not in the array
    };
    
    0 讨论(0)
  • 2021-02-05 07:39

    As to your bonus question, try if (jQuery.inArray(jQuery("input:first").val(), ar) < 0)

    0 讨论(0)
  • 2021-02-05 07:43

    Alternate solution of the values check

    //Duplicate Title Entry 
        $.each(ar , function (i, val) {
            if ( jQuery("input:first").val()== val) alert('VALUE FOUND'+Valuecheck);
      });
    
    0 讨论(0)
提交回复
热议问题