Side navigation
#12003 closed bug (invalid)
Opened July 02, 2012 08:54PM UTC
Closed July 02, 2012 08:56PM UTC
Last modified July 02, 2012 10:57PM UTC
jQuery.inArray() returns -1 for value that is in array if it is the only element in array
| Reported by: | vic.emond@netingredients.com | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | None |
| Component: | unfiled | Version: | 1.7.2 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
var a = new Array(4);
$.inArray(4, a) returns -1.
This should return 0, shouldn't it?
Attachments (0)
Change History (4)
Changed July 02, 2012 08:56PM UTC by comment:1
| resolution: | → invalid |
|---|---|
| status: | new → closed |
Changed July 02, 2012 09:08PM UTC by comment:2
@reporter
var a = [4];
console.log($.inArray(4, a)); 0
var a = [1,4];
console.log($.inArray(4, a)); 1
Changed July 02, 2012 09:17PM UTC by comment:3
Yes, here you've used a literal. In your original example, you used the new Array() constructor, which creates arrays like...
var a = new Array(1); a.length; // 1 a[0]; // undefined
var a = new Array(1, 2, 3); a.length; // 3 a[0]; // 1
The Array constructor creates an array of N length when passed a single numeric argument
Changed July 02, 2012 10:57PM UTC by comment:4
alert(new Array(3).join("ha"));
new Array(4)create[,,,]not[4].