js陣列去重,除重的方式(儘可能多)
測試陣列:
let arr = [3, 1, 0, 0, 1, 1, 2, 3, 4, 2, 1, 2, 4, 2, 3, 0, 2, 4, 2, 1, 4, 5, 5, 5, 3];
先來幾個簡單的
//陣列去重0
function arrayUniq0(arr) {
let result = [...new Set(arr)]
return result;
}
console.log("陣列除重0:" + arrayUniq0(arr));
//陣列去重1
function arrayUniq1(arr) {
let result = arr.filter((item, index, array) => {
return array.lastIndexOf(item) == index
})
return result;
}
console.log("陣列除重1:" + arrayUniq1(arr));
//陣列去重2
function arrayUniq2(arr) {
let result = [];
arr.forEach(element => {
result.indexOf(element) == -1 && result.push(element)
});
return result;
}
console.log("陣列除重2:" + arrayUniq2(arr));
//陣列去重3
function arrayUniq3(arr) {
let obj = {};
var resultArr = [];
for (let index = 0; index < arr.length; index++) {
if (!(arr[index] in obj)) {
obj[arr[index]] = 0;
resultArr.push(arr[index]);
}
}
return resultArr;
}
console.log("陣列除重3:" + arrayUniq3(arr));
雙層迴圈不能少
//陣列去重4
function arrayUniq4(arr) {
var resultArr = [];
for (let index = 0; index < arr.length; index++) {
let j = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[index] == arr[i]) {
j++;
if (j > 1) {
delete arr[i];
}
}
}
if (arr[index] != undefined) {
resultArr.push(arr[index]);
}
}
return resultArr;
}
console.log("陣列除重4:" + arrayUniq3(arr));
// for forEach for...in.. 兩兩組合 沒意思不寫了
// for forEach for...in.. 替換除重1的外部迴圈
// for forEach for...in.. 替換除重2的外部迴圈
替換一下1方法
//陣列去重5
function arrayUniq5(arr) {
let result = [].filter.call(arr, (item, index, array) => {
return array.lastIndexOf(item) == index
})
return result;
}
console.log("陣列除重5:" + arrayUniq5(arr));
//陣列去重8
function arrayUniq8(arr) {
let result = [].filter.bind(arr)((item, index, array) => {
return array.lastIndexOf(item) == index
})
return result;
}
console.log("陣列除重8:" + arrayUniq8(arr));
//陣列去重9
function arrayUniq9(arr) {
let result = [].filter.apply(arr, [(item, index, array) => {
return array.lastIndexOf(item) == index
}])
return result;
}
console.log("陣列除重9:" + arrayUniq9(arr));
// 按照 5,8,9 進行替換 你懂得有多少種
替換下外部
//陣列去重6
function arrayUniq6(arr) {
let obj = {};
var resultArr = [];
[].forEach.call(arr, element => {
if (!(element in obj)) {
obj[element] = 0;
resultArr.push(element);
}
})
return resultArr;
}
console.log("陣列除重6:" + arrayUniq6(arr));
//陣列去重7
function arrayUniq7(arr) {
let obj = {};
var resultArr = [];
[].forEach.bind(arr, element => {
if (!(element in obj)) {
obj[element] = 0;
resultArr.push(element);
}
})()
return resultArr;
}
console.log("陣列除重7:" + arrayUniq7(arr));
由此推算 … 你懂得
相關文章
- JS陣列去重 – JSON陣列去重陣列JSON
- js陣列去重JS陣列
- js物件陣列去重JS物件陣列
- js陣列物件去重JS陣列物件
- JS陣列去重 包含去除多個 NaNJS陣列NaN
- 陣列去重的幾種方式陣列
- 陣列求和,刪除,去重陣列
- JS陣列去重的實現JS陣列
- JS實現陣列去重JS陣列
- js 陣列去重小技巧JS陣列
- JS陣列去重的10種方法JS陣列
- JS陣列去重的幾種方法JS陣列
- JS陣列去重7種方法JS陣列
- JS專題之陣列去重JS陣列
- JS演算法——陣列去重JS演算法陣列
- 陣列去重陣列
- 陣列去重的各種方式對比陣列
- js中給陣列中物件去重JS陣列物件
- js陣列去重之核心思想JS陣列
- 陣列去重的方法陣列
- JavaScript實現陣列去重的常見方式JavaScript陣列
- JavaScript 陣列去重JavaScript陣列
- 陣列物件去重陣列物件
- JavaScript陣列去重JavaScript陣列
- js陣列去重、扁平化函式JS陣列函式
- 整理了js陣列去重4種方法JS陣列
- java陣列中重複元素的去重Java陣列
- 陣列的去重和排序陣列排序
- JavaScript陣列去重方法JavaScript陣列
- 陣列去重和求和陣列
- javascript之陣列去重JavaScript陣列
- 關於陣列去重陣列
- 解鎖多種JavaScript陣列去重姿勢JavaScript陣列
- 陣列去重的幾種方法陣列
- 陣列去重Demo引出的思考陣列
- 陣列去重的幾個方法陣列
- 陣列去重的六種方法陣列
- 陣列去重和陣列扁平化陣列