JavaScript數(shù)組去重實現(xiàn)方法小結
本文實例講述了JavaScript數(shù)組去重實現(xiàn)方法。分享給大家供大家參考,具體如下:
一、ES3方法:
var arr = ['a', 'a', 'b', 'b', 'b', 'c', 'e', 'f', 1, 2, 2, 3, 3, 3];
創(chuàng)建一個空數(shù)組與原來數(shù)組進行比較
//與前面的數(shù)組進行比較(不會改變原數(shù)組)
function deleteRepeat() {
var result = [];
label: for(var i=0; i<arr.length; i++) {
for(var j=0; j<result.length; j++) {
if(result[j] == arr[i]) {
continue label;
}
}
result.push(arr[i]);
}
return result;
}
//與后面的進行比較(不會改變原數(shù)組)
function deleteRepeat() {
var result = [];
for(var i = 0; i < arr.length; i++) {
for(var j = i+1; j < arr.length; j++) {
if(arr[i] == arr[j]) {
j = ++i;
}
}
result.push(arr[i]);
}
return result;
}
// splice()方法 (會改變原數(shù)組)
function deleteRepeat() {
for(var i = 0; i < arr.length; i++) {
for(var j = i+1; j < arr.length; j++) {
if(arr[i] == arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
return arr;
}
// 利用對象的屬性不能重復特點(不會改變原數(shù)組)
function deleteRepeat() {
var result = [];
var object = {};
for(var i = 0; i < arr.length; i++) {
var t = arr[i];
if(!object[t]) {
result.push(t);
object[t] = true;
}
}
return result;
}
// 先排序再去重(只需要進行一次for循環(huán)、 會改變原數(shù)組)
function deleteRepeat() {
var arr1 = arr.sort();
var result = [];
for(var i = 0; i < arr1.length; i++) {
if(arr1[i] != arr1[i+1]) {
result.push(arr1[i]);
}
}
return result;
}
二、ES5方法:
利用IndexOf()方法
map()方法或forEach()方法或filter()方法
三、ES6方法
var a = [1, 2, 2, 3, 3, 3]; [...new Set(a)]; [1, 2, 3]
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
PS:這里再為大家提供幾款相關工具供大家參考使用:
在線去除重復項工具:
http://tools.jb51.net/code/quchong
在線文本去重復工具:
http://tools.jb51.net/aideddesign/txt_quchong
更多關于JavaScript相關內(nèi)容還可查看本站專題:《JavaScript數(shù)組操作技巧總結》、《JavaScript字符與字符串操作技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript數(shù)學運算用法總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》及《JavaScript錯誤與調(diào)試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
webpack-dev-server搭建本地服務器的實現(xiàn)
當我們使用webpack打包時,發(fā)現(xiàn)每次更新了一點代碼,都需要重新打包,我們希望本地能搭建一個服務器,本文就介紹如何使用webpack-dev-server搭建本地服務器,感興趣的可以了解一下2021-07-07

