Jquery, checking if a value exists in array or not
我相信这个问题对于那些使用JavaScript /jQuery的人来说是相当容易的。
1 2 3 4 5 6 7 8 9 | var arr = new Array(); $.map(arr, function() { if (this.id == productID) { this.price = productPrice; }else { arr.push({id: productID, price: productPrice}) } } |
我想上面的代码很简单地解释了我想要什么。我想这个$.map会像这样工作,但不幸的是我不能得到这个结果。
最简单和优雅的方法是什么?我真的要检查所有的数组,看看一个键的值是否存在?
jquery是否有类似于
编辑
我尝试使用inarray,但它会不断向数组添加对象,即使有匹配的对象。
1 2 3 4 5 6 | if ( $.inArray(productID, arr) > -1) { var number = $.inArray(productID, arr); orderInfo[number].price = parseFloat(productPrice); }else { orderInfo.push({id:productID, price:parseFloat(productPrice)}); } |
http:/ / / / api.jquery.com jquery.inarray </P >
1 2 3 4 | if ($.inArray('example', myArray) != -1) { // found it } |
如果你想用它做
1 2 3 4 5 6 7 8 9 10 | var added=false; $.map(arr, function(elementOfArray, indexInArray) { if (elementOfArray.id == productID) { elementOfArray.price = productPrice; added = true; } } if (!added) { arr.push({id: productID, price: productPrice}) } |
在每个函数的handles separately元。在
jQuery有《
http:/ / / / api.jquery.com jquery.inarray </P >
1 2 3 4 5 6 | if ($.inArray('yourElement', yourArray) > -1) { //yourElement in yourArray //code here } |
参考:jQuery的阵列 </P >
对美元的.inarray()方法是相似的JavaScript的本地人.indexof()方法,它在时返回-1时,它不' t find a match。如果第一个元素在数组的值的比赛,.inarray(美元)时返回0。 </P >
试着
这里是一个链接jsfiddle使用同样的代码:http:/ / / / jsfiddle.net yrshaikh sukn2 / </P >
对美元的.inarray()方法是相似的JavaScript的本地人.indexof()方法,它在时返回-1时,它不' t find a match。如果第一个元素在数组的值的比赛,.inarray(美元)时返回0 </P >
实例代码: </P >
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 | <html> <head> <style> div { color:blue; } span { color:red; } </style> <script src="http://code.jquery.com/jquery-latest.js"> </head> <body> "John" found at <span></span> 4 found at <span></span> "Karl" not found, so <span></span> "Pete" is in the array, but not at or after index 2, so <span></span> var arr = [ 4,"Pete", 8,"John" ]; var $spans = $("span"); $spans.eq(0).text(jQuery.inArray("John", arr)); $spans.eq(1).text(jQuery.inArray(4, arr)); $spans.eq(2).text(jQuery.inArray("Karl", arr)); $spans.eq(3).text(jQuery.inArray("Pete", arr, 2)); </body> </html> |
输出: </P >
1 2 3 4 | "John" found at 3 4 found at 0 "Karl" not found, so -1 "Pete" is in the array, but not at or after index 2, so -1 |