Small patch to removeItem so that all instances of a value in the array are removed, even if they are consecutive by reversing the order in which the array is enumerated. Updated tests and checked in Safari 3, FF2. (closes #1228).

git-svn-id: http://svn.openlayers.org/trunk/openlayers@5543 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Paul Spencer
2007-12-20 20:22:36 +00:00
parent 2931cd3065
commit c056118b59
2 changed files with 6 additions and 4 deletions

View File

@@ -82,7 +82,7 @@ OpenLayers.Util.extend = function(destination, source) {
* {Array} A reference to the array
*/
OpenLayers.Util.removeItem = function(array, item) {
for(var i=0; i < array.length; i++) {
for(var i = array.length - 1; i >= 0; i--) {
if(array[i] == item) {
array.splice(i,1);
//break;more than once??

View File

@@ -12,12 +12,14 @@
}
function test_03_Util_Array(t) {
t.plan( 1 );
t.plan( 2 );
var array = new Array(1,2,3,4,5);
var array = new Array(1,2,3,4,4,5);
OpenLayers.Util.removeItem(array, 3);
t.eq( array.toString(), "1,2,4,5", "Util.removeItem works");
t.eq( array.toString(), "1,2,4,4,5", "Util.removeItem works on one element");
OpenLayers.Util.removeItem(array, 4);
t.eq( array.toString(), "1,2,5", "Util.removeItem works on more than one element ");
}
function test_03_Util_pagePosition(t) {