<
scrīpt language
=
"
Javascrīpt
"
>
<!--
var arrData = new Array();
for ( var i = 0 ; i < 1000 ; i ++ )
{
arrData[arrData.length] = String.fromCharCode(Math.floor(Math.random() * 26 ) + 97 );
}
// document.write(arrData+"<br/>");
// 方法一,普通遍历
function myArray_Unique(myArray)
{
// var myArray=new Array("a","a","c","a","c","d","e","f","f","g","h","g","h","k");
var haha = myArray;
for ( var i = 0 ;i < myArray.length;i ++ )
{
for ( var j = 0 ;j < myArray.length;j ++ )
{
temp = myArray[i];
if ((i + j + 1 ) < myArray.length && temp == myArray[i + j + 1 ]) // 如果当前元素与后一个元素相等
haha.splice(i + j + 1 , 1 ); // 然后就移除下一个元素
}
}
return haha;
}
// 方法二
function getUnique(someArray)
{
tempArray = someArray.slice( 0 ); // 复制数组到临时数组
for ( var i = 0 ;i < tempArray.length;i ++ )
{
for ( var j = i + 1 ;j < tempArray.length;)
{
if (tempArray[j] == tempArray[i])
// 后面的元素若和待比较的相同,则删除并计数;
// 删除后,后面的元素会自动提前,所以指针j不移动
{
tempArray.splice(j, 1 );
}
else
{
j ++ ;
}
// 不同,则指针移动
}
}
return tempArray;
}
// 方法三 正则表达式 -- 适用于字符型数组
function getUnique2(A)
{
var str = " " + A.join( " " );
while ( / (w + )[ ^ 1 ] * 1 / .test(str))
str = str.replace( " " + RegExp.$ 1 , "" );
return str.substr( 1 ).split( " " );
}
// 方法四 关联结构
Array.prototype.unique = array_unique;
function array_unique()
{
var o = new Object();
for ( var i = 0 ,j = 0 ; i < this .length; i ++ )
{
if ( typeof o[ this [i]] == ' undefined ' )
{
o[ this [i]] = j ++ ;
}
}
this .length = 0 ;
for ( var key in o)
{
this [o[key]] = key;
}
return this ;
}
<!--
var arrData = new Array();
for ( var i = 0 ; i < 1000 ; i ++ )
{
arrData[arrData.length] = String.fromCharCode(Math.floor(Math.random() * 26 ) + 97 );
}
// document.write(arrData+"<br/>");
// 方法一,普通遍历
function myArray_Unique(myArray)
{
// var myArray=new Array("a","a","c","a","c","d","e","f","f","g","h","g","h","k");
var haha = myArray;
for ( var i = 0 ;i < myArray.length;i ++ )
{
for ( var j = 0 ;j < myArray.length;j ++ )
{
temp = myArray[i];
if ((i + j + 1 ) < myArray.length && temp == myArray[i + j + 1 ]) // 如果当前元素与后一个元素相等
haha.splice(i + j + 1 , 1 ); // 然后就移除下一个元素
}
}
return haha;
}
// 方法二
function getUnique(someArray)
{
tempArray = someArray.slice( 0 ); // 复制数组到临时数组
for ( var i = 0 ;i < tempArray.length;i ++ )
{
for ( var j = i + 1 ;j < tempArray.length;)
{
if (tempArray[j] == tempArray[i])
// 后面的元素若和待比较的相同,则删除并计数;
// 删除后,后面的元素会自动提前,所以指针j不移动
{
tempArray.splice(j, 1 );
}
else
{
j ++ ;
}
// 不同,则指针移动
}
}
return tempArray;
}
// 方法三 正则表达式 -- 适用于字符型数组
function getUnique2(A)
{
var str = " " + A.join( " " );
while ( / (w + )[ ^ 1 ] * 1 / .test(str))
str = str.replace( " " + RegExp.$ 1 , "" );
return str.substr( 1 ).split( " " );
}
// 方法四 关联结构
Array.prototype.unique = array_unique;
function array_unique()
{
var o = new Object();
for ( var i = 0 ,j = 0 ; i < this .length; i ++ )
{
if ( typeof o[ this [i]] == ' undefined ' )
{
o[ this [i]] = j ++ ;
}
}
this .length = 0 ;
for ( var key in o)
{
this [o[key]] = key;
}
return this ;
}