if(!Array.indexOf){
Array.prototype.indexOf = function(obj){
for( var i = 0, len = this.length; i < len; i++){
if(this[i]==obj){
return i;
}
}
return -1;
}
}
function arrayUnique( array ){
var uniqueArray = [];
var item;
for( var i = 0, len=array.length ; i < len ; i++ ){
item = array[i];
if( uniqueArray.indexOf( item ) == -1 ){
uniqueArray.push( item );
}
}
return uniqueArray;
}
Tested in IE6/FF2
2 comments:
Tommy,
I tested this in IE 6, but does not work. Occours an error in this line
if( uniqueArray.indexOf( item ) == -1 ),
in IE is needed a some change to works ?
In Mozilla Firefox runs all ok, only IE what a have problem
I put this code in a button on single notes form
var List_1= new Array(4);
List_1[0] = "Luis";
List_1[1] = "Paula";
List_1[2] = "Luis";
List_1[3] = "Marcos";
List_1[4] = "Jorge";
alert ('result = ' +arrayUnique(List_1));
and the your function
function arrayUnique( array ){
var uniqueArray = [];
var item;
for( var i = 0, len=array.length ; i < len ; i++ ){
item = array[i];
if( uniqueArray.indexOf( item ) == -1 ){
uniqueArray.push( item );
}
}
return uniqueArray;
}
on JS Header on this same form
Thanks for letting me know. I updated the original post with a workaround for browsers that doesn't have the Array.indexOf-method.
Post a Comment