From 5c00abcf8786974ece0d6d01cfb4ba9740fa05a4 Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Tue, 15 Nov 2011 22:46:18 +0100 Subject: [PATCH 1/2] Provided _.indexOf and _.lastIndexOf with proper sparse array support. --- underscore.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/underscore.js b/underscore.js index 5579c07d3..467f4ef8f 100644 --- a/underscore.js +++ b/underscore.js @@ -432,7 +432,7 @@ return array[i] === item ? i : -1; } if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item); - for (i = 0, l = array.length; i < l; i++) if (array[i] === item) return i; + for (i = 0, l = array.length; i < l; i++) if (!_.isUndefined(array[i]) && array[i] === item) return i; return -1; }; @@ -441,7 +441,7 @@ if (array == null) return -1; if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item); var i = array.length; - while (i--) if (array[i] === item) return i; + while (i--) if (!_.isUndefined(array[i]) && array[i] === item) return i; return -1; }; From bf7a351fd6048f096ce2de6b6a2d486c496d940c Mon Sep 17 00:00:00 2001 From: Jan Raasch Date: Tue, 15 Nov 2011 23:55:04 +0100 Subject: [PATCH 2/2] (Actually) Provided _.indexOf and _.lastIndexOf with proper sparse array support. --- underscore.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/underscore.js b/underscore.js index 467f4ef8f..821084409 100644 --- a/underscore.js +++ b/underscore.js @@ -432,7 +432,7 @@ return array[i] === item ? i : -1; } if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item); - for (i = 0, l = array.length; i < l; i++) if (!_.isUndefined(array[i]) && array[i] === item) return i; + for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i; return -1; }; @@ -441,7 +441,7 @@ if (array == null) return -1; if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item); var i = array.length; - while (i--) if (!_.isUndefined(array[i]) && array[i] === item) return i; + while (i--) if (i in array && array[i] === item) return i; return -1; };