jQuery.inArray(), how to use it right?
我第一次和
如果对象在数组中,它将返回0,但在javascript中0为假。因此,下面将输出:"不在数组中"
1 2 3 4 5 6 7 8 | var myarray = []; myarray.push("test"); if(jQuery.inArray("test", myarray)) { console.log("is in array"); } else { console.log("is NOT in array"); } |
我将不得不将if语句更改为:
1 | if(jQuery.inArray("test", myarray)==0) |
但这使得代码无法读取。尤其是对于不知道这个功能的人。他们期望jquery.in array("test",myarray)在"test"在数组中时为true。
所以我的问题是,为什么要这样做?我真的不喜欢这个。但这样做肯定有很好的理由。
所以,如果一个项目的检查是在数组,使用: </P >
1 | if(jQuery.inArray("test", myarray) !== -1) |
1 2 3 4 5 | if(jQuery.inArray("test", myarray) != -1) { console.log("is in array"); } else { console.log("is NOT in array"); } |
的答案是从第一款的规定对文件的检查,如果结果是大于1的,如果它不是’s true或false。 </P >
The $.inArray() method is similar to JavaScript's native .indexOf() method in that it returns -1 when it doesn't find a match. If the first element within the array matches value, $.inArray() returns 0.
Because JavaScript treats 0 as loosely equal to false (i.e. 0 == false, but 0 !== false), if we're checking for the presence of value within array, we need to check if it's not equal to (or greater than) -1.
在右键的方式利用
官方标准的名字是也更清晰的事实,在returned值是一个指标,因此,如果通过的第一个元是一个你会回来的一
(值得注意的是,这
或者如果你想找一位喜欢你可以使用按位NOT(~)和逻辑非(!)经营者对转化的结果,在inarray函数的布尔值。 </P >
1 2 3 4 5 | if(!!~jQuery.inArray("test", myarray)) { console.log("is in array"); } else { console.log("is NOT in array"); } |
我通常使用 </P >
1 | if(!(jQuery.inArray("test", myarray) < 0)) |
或 </P >
1 | if(jQuery.inArray("test", myarray) >= 0) |
inarray jQuery()的方法是使用的搜索一个值在一阵列和回报它的指标,而不是一个布尔值。如果该值是不发现它将返回-1。 </P >
所以,如果一个值的检查是目前在西安的阵列,跟随下面的做法: </P >
1 2 3 4 5 | myArray = new Array("php","tutor"); if( $.inArray("php", myArray) !== -1 ) { alert("found"); } |
参考 </P >
在
当
对使用中的
1 2 3 4 5 | if(jQuery.inArray("test", myarray) != -1) { console.log("is in array"); } else { console.log("is NOT in array"); } |
去大学的
1 2 3 4 5 6 7 8 9 10 11 12 | var array1 = [1, 2, 3]; console.log(array1.includes(2)); // expected output: true var pets = ['cat', 'dog', 'bat']; console.log(pets.includes('cat')); // expected output: true console.log(pets.includes('at')); // expected output: false |
官方检查后在这里 </P >
如果我们想检查一元是在一系列元素,我们能做的设计实例: </P >
1 2 3 4 5 6 7 8 9 | var checkboxes_checked = $('input[type="checkbox"]:checked'); // Whenever a checkbox or input text is changed $('input[type="checkbox"], input[type="text"]').change(function() { // Checking if the element was an already checked checkbox if($.inArray( $(this)[0], checkboxes_checked) !== -1) { alert('this checkbox was already checked'); } } |
它将返回该指标在项目中的阵列。如果这不是你会发现
jquery.inarray(指标)时返回的数组中的项,或1项,如果不被发现。读更多的在这里:jquery.inarray(的) </P >
1 2 3 | /^(one|two|tree)$/i.test(field) // field = Two; // true /^(one|two|tree)$/i.test(field) // field = six; // false /^(раз|два|три)$/ui.test(field) // field = Три; // true |
这是有用的用于诊断的动态变量。这个方法是很容易读。 </P >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // Declare the array and define it's values var myarray = ['Cat', 'Dog', 'Fish']; // Display the return value of each jQuery function // when a radio button is selected $('input:radio').change( function() { // Get the value of the selected radio var selectedItem = $('input:radio[name=arrayItems]:checked').val(); $('.item').text( selectedItem ); // Calculate and display the index of the selected item $('#indexVal').text( myarray.indexOf(selectedItem) ); // Calculate and display the $.inArray() value for the selected item $('#inArrVal').text( $.inArray(selectedItem, myarray) ); // Calculate and display the .includes value for the selected item $('#includeVal').text( myarray.includes(selectedItem) ); }); |
1 2 3 4 | #results { line-height: 1.8em; } #resultLabels { width: 14em; display: inline-block; margin-left: 10px; float: left; } label { margin-right: 1.5em; } .space { margin-right: 1.5em; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> Click a radio button to display the output of <wyn>$.inArray()</wyn> vs. <wyn>myArray.indexOf()</wyn> vs. <wyn>myarray.includes()</wyn> when tested against <wyn>myarray = ['Cat', 'Dog', 'Fish'];</wyn> <label><input type="radio" name="arrayItems" value="Cat"> Cat</label> <label><input type="radio" name="arrayItems" value="Dog"> Dog</label> <label><input type="radio" name="arrayItems" value="Fish"> Fish</label> <label><input type="radio" name="arrayItems" value="N/A"> ← Not in Array</label> Results: myarray.indexOf("<span class="item">item</span>" ) $.inArray("<span class="item">item</span>", myarray ) myarray.includes("<span class="item">item</span>" ) <span class="space">=</span><span id="indexVal"></span> <span class="space">=</span><span id="inArrVal"></span> <span class="space">=</span><span id="includeVal"></span> |
</P >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var abc = { "partner": { "name":"North East & Cumbria (EDT)", "number":"01915008717", "areas": { "authority": ["Allerdale","Barrow-in-Furness","Carlisle"] } } }; $.each(abc.partner.areas, function(key, val){ console.log(val); if(jQuery.inArray("Carlisle", val)) { console.log(abc.partner.number); } }); |
的人,检查的医生。 </P >
例如: </P >
1 2 | var arr = [ 4,"Pete", 8,"John" ]; console.log(jQuery.inArray("John", arr ) == 3); |
设计的一些原则,当你尝试to check for a jQuery DOM元素,它不会工作的恰当。SO的重写的函数会做的把戏。 </P >
1 2 3 4 5 6 7 8 | function isObjectInArray(array,obj){ for(var i = 0; i < array.length; i++) { if($(obj).is(array[i])) { return i; } } return -1; } |
是的,一个好的使用
1 2 3 4 5 | if ($.inArray(nearest.node.name, array)>=0){ console.log("is in array"); }else{ console.log("is not in array"); } |