require(['jquery'], function($) {
// 數(shù)組去重
// 獲取數(shù)組
function getArray(length) {
var tmpArray = [];
for (var i = 0; i < length; i++) {
tmpArray.push(Math.floor(Math.random() * 10 + 1));
}
return tmpArray;
}
/*
開始介紹下jquery的去重方法,簡單粗暴
*/
var myArray = getArray(20);
console.log("排序前:", myArray);
console.log("排序后:", $.unique(myArray));
/*
方法一(慢到?jīng)]朋友)
1.構(gòu)建一個新的數(shù)組存放結(jié)果
2.for循環(huán)中每次從原數(shù)組中取出一個元素,用這個元素循環(huán)與結(jié)果數(shù)組對比
3.若結(jié)果數(shù)組中沒有該元素,則存到結(jié)果數(shù)組中
*/
function unique_method1(array) {
var tmpArray = [array[0]];
for (var i = 1, len = array.length; i < len; i++) {
var flag = false;
for (var j = 0, tmpLen = tmpArray.length; j < tmpLen; j++) {
if (array[i] == tmpArray[j]) {
flag = true;
break;
}
}
if (!flag) {
tmpArray.push(array[i])
}
}
return tmpArray;
}
var myArray = getArray(20);
console.log("排序前:", myArray);
console.log("排序后:", unique_method1(myArray));
/*
方法二:(高效)
1.創(chuàng)建一個新的數(shù)組存放結(jié)果,創(chuàng)建一個空對象來記錄存放
2.for循環(huán)時,每次取出一個元素與記錄存放進行對比,如果這個元素不重復(fù),
則把它存放到結(jié)果數(shù)組中,并在對象中記錄下來。
*/
function unique_method2(array) {
var tmpArray = [];
var tmpObj = {};
for (var i = 0, len = array.length; i < len; i++) {
if (!tmpObj[array[i]]) {
tmpArray.push(array[i]);
tmpObj[array[i]] = 1;
}
}
return tmpArray;
}
var myArray = getArray(20);
console.log("排序前:", myArray);
console.log("排序后:", unique_method2(myArray));
/*
方法三(高效,但改變順序)
1.先將原數(shù)組進行排序
2.檢查原數(shù)組中的第i個元素 與 結(jié)果數(shù)組中的最后一個元素是否相同,
因為已經(jīng)排序,所以重復(fù)元素會在相鄰位置
3.如果不相同,則將該元素存入結(jié)果數(shù)組中
*/
function unique_method3(array) {
array.sort();
var tmpArray = [array[0]];
for (var i = 1, len = array.length; i < len; i++) {
if (array[i] !== tmpArray[tmpArray.length - 1]) {
tmpArray.push(array[i]);
}
}
return tmpArray;
}
var myArray = getArray(20);
console.log("排序前:", myArray);
console.log("排序后:", unique_method3(myArray));
})
多種js數(shù)組去重的方法
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- ES6 Array.from將類數(shù)組對象和可遍歷的對象轉(zhuǎn)換為數(shù)組 阮一峰ES6 ES5
- #30天意志力培養(yǎng)挑戰(zhàn)# 21/30天 挑戰(zhàn)內(nèi)容: 閱讀《如何閱讀一本書》,形成1-3張卡片 今日感受及收獲: 對...
- 中國教育雖然存在很多問題,但是基礎(chǔ)教育,暨九年義務(wù)教育,一直以扎實、全等等而聞名于世。這從中國大陸加入基礎(chǔ)教育最有...
- 我一直對幾句話深信不疑: 吵架別開車,無聊別購物, 肚餓別洗澡,難過別暴食。 當(dāng)然,還有畫龍點睛的最后兩句: 離開...