新聞中心
js 中如何去掉數(shù)組中的重復(fù)的數(shù)據(jù)
可以使用js的for循環(huán)篩選實(shí)現(xiàn)去掉數(shù)組中的重復(fù)的數(shù)據(jù)。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)利通,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
具體步驟如下:
需要準(zhǔn)備的材料分別是:電腦、瀏覽器、ultraedit。
1、在ue編輯器中新建一個(gè)空白的html文件,js文件。
2、在ue編輯器中輸入以下html代碼。
3、在ue編輯器中輸入以下js代碼。
4、編輯完成以后,在ue編輯器中點(diǎn)擊保存,格式選擇UTF8無BOM。
5、在瀏覽器中打開此html文件,可以看到最終想要實(shí)現(xiàn)的去掉數(shù)組中的重復(fù)的數(shù)據(jù)效果。
JavaScript幾種數(shù)組去掉重復(fù)值的方法推薦
數(shù)組去重復(fù)是一個(gè)常見的需求,我們暫時(shí)考慮同類型的數(shù)組去重復(fù)。主要是理清思路和考慮下性能。以下方法,網(wǎng)上基本都有,這里只是簡(jiǎn)單地總結(jié)一下。
思路:
1.遍歷數(shù)組,一一比較,比較到相同的就刪除后面的
2.遍歷數(shù)組,一一比較,比較到相同的,跳過前面重復(fù)的,不相同的放入新數(shù)組
3.任取一個(gè)數(shù)組元素放入新數(shù)組,遍歷剩下的數(shù)組元素任取一個(gè),與新數(shù)組的元素一一比較,如果有不同的,放入新數(shù)組。
4.遍歷數(shù)組,取一個(gè)元素,作為對(duì)象的屬性,判斷屬性是否存在
1.
刪除后面重復(fù)的:
function
ov1(arr){
//var
a1=((new
Date).getTime())
for(var
i=0;iarr.length;i++)
for(var
j=i+1;jarr.length;j++)
if(arr[i]===arr[j]){arr.splice(j,1);j--;}
//console.info((new
Date).getTime()-a1)
return
arr.sort(function(a,b){return
a-b});
}
2.
這個(gè)是常規(guī)的方法,比較好理解,如果相同則跳出循環(huán)
function
ov2(a)
{
//var
a1=((new
Date).getTime())
var
b
=
[],
n
=
a.length,
i,
j;
for
(i
=
0;
i
n;
i++)
{
for
(j
=
i
+
1;
j
n;
j++)
if
(a[i]
===
a[j]){j=false;break;}
if(j)b.push(a[i]);
}
//console.info((new
Date).getTime()-a1)
return
b.sort(function(a,b){return
a-b});
}
3.
這個(gè)我花了好長(zhǎng)時(shí)間明白的,這里j循環(huán)雖然繼續(xù)了,但是i值已經(jīng)改變了。就等于是一個(gè)新的i循環(huán):
function
ov3(a)
{
//var
a1=((new
Date).getTime())
var
b
=
[],
n
=
a.length,
i,
j;
for
(i
=
0;
i
n;
i++)
{
for
(j
=
i
+
1;
j
n;
j++)
if
(a[i]
===
a[j])j=++i
b.push(a[i]);}
//console.info((new
Date).getTime()-a1)
return
b.sort(function(a,b){return
a-b});
}
4.
保證新數(shù)組中的都是唯一的
function
ov4(ar){
//var
a1=((new
Date).getTime())
var
m=[],f;
for(var
i=0;iar.length;i++){
f=true;
for(var
j=0;jm.length;j++)
if(ar[i]===m[j]){f=false;break;};
if(f)m.push(ar[i])}
//console.info((new
Date).getTime()-a1)
return
m.sort(function(a,b){return
a-b});
}
5.
用對(duì)象屬性
function
ov5(ar){
//
var
a1=(new
Date).getTime()
var
m,n=[],o=
{};
for
(var
i=0;(m=
ar[i])!==undefined;i++)
if
(!o[m]){n.push(m);o[m]=true;}
//
console.info((new
Date).getTime()-a1)
return
n.sort(function(a,b){return
a-b});;
}
以上這篇JavaScript幾種數(shù)組去掉重復(fù)值的方法推薦就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
js判斷數(shù)組中是否有重復(fù)值得三種方法
JS判斷一個(gè)數(shù)組中是否有重復(fù)值的三種方法
方法一:
//將數(shù)組轉(zhuǎn)換成字符串,遍歷數(shù)組,移除一個(gè)元素後若還能找到該元素,那么這個(gè)元素就是重復(fù)的
var s = ary.join(",")+",";
for(var i=0;iary.length;i++) {
if(s.replace(ary[i]+",","").indexOf(ary[i]+",")-1) {
alert("數(shù)組中有重復(fù)元素:" + ary[i]);
break;
}
}
方法二:
//對(duì)數(shù)組進(jìn)行排序,查上一個(gè)和下一個(gè)是否相等
var ary = new Array("111","22","33","111");
var nary=ary.sort();
for(var i=0;iary.length;i++){
if (nary[i]==nary[i+1]){
alert("數(shù)組重復(fù)內(nèi)容:"+nary[i]);
}
}
方法三:
//以數(shù)組值為鍵,持續(xù)向一個(gè)對(duì)象里面加值,
//如果在加值之前就發(fā)現(xiàn)這個(gè)屬性在對(duì)象中已經(jīng)存在,那么他就是重復(fù)的
function isRepeat(arr){
var hash = {};
for(var i in arr) {
if(hash[arr[i]])
return true;
hash[arr[i]] = true;
}
return false;
}
以上是簡(jiǎn)單類型數(shù)據(jù)數(shù)組的重復(fù)校驗(yàn)方法,若數(shù)組的元素為對(duì)象,處理方式就需要變化一下,取關(guān)鍵屬性作為依據(jù)
如何判斷JavaScript 數(shù)組含有重復(fù)值
avascript判斷一個(gè)數(shù)組中是否有重復(fù)值的三種方法:
判斷重復(fù)方法一,轉(zhuǎn)為字符串 進(jìn)行比較:
var ary = new Array("aaa","cc","dd","aaa");
var s = ary.join(",")+",";
for(var i=0;iary.length;i++) {
if(s.replace(ary[i]+",","").indexOf(ary[i]+",")-1) {
alert("數(shù)組中有重復(fù)元素:" + ary[i]);
break;
}
}
判斷重復(fù)方法二,數(shù)組排序,再比較相鄰的值:
var ary = new Array("bbb","cc","dd","bbb");
var nary=ary.sort();
for(var i=0;iary.length;i++){
if (nary[i]==nary[i+1]){
alert("數(shù)組重復(fù)內(nèi)容為:"+nary[i]);
}
}
判斷重復(fù)方法三,自定義函數(shù)方法判斷重復(fù):
function isRepeat(arr){
var hash = {};
for(var i in arr) {
if(hash[arr[i]])
return true;
hash[arr[i]] = true;
}
return false;
}
網(wǎng)頁名稱:JavaScript重復(fù),JavaScript重復(fù)字符串
網(wǎng)頁URL:http://fisionsoft.com.cn/article/dsicego.html