let arr = [1, 2, 4, 2, 4, 2, 4, 55, 52, 1]
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1)
j--
}
}
}
let arr = [1, 2, 4, 2, 4, 2, 4, 55, 52, 1]
let arrs = [arr[0]]
for (let i = 0; i < arr.length; i++) {
if (arrs.indexOf(arr[i]) == -1) {
arrs.push(arr[i])
}
}
//或者用forEach代理for循环
arr.forEach((item, index) => {
if (arrs.indexOf(arr[index]) == -1) {
arrs.push(arr[index])
}
})
let arr = [1, 2, 4, 2, 4, 2, 4, 55, 52, 1]
let arrs = arr.filter((item, index) => {
return arr.indexOf(item) == index
})
ES6
中新增了数据类型Set,Set的一个最大的特点就是数据不重复。Set函数可以接受一个数组(或类数组对象)作为参数来初始化,利用该特性也能做到给数组去重。new Set方法,返回是一个类数组,需要配合[...]扩展运算符来转换为数组
let arr = [1, 2, 4, 2, 4, 2, 4, 55, 52, 1]
function deweighting(arr) {
return [...new Set(arr)]
}
console.log(deweighting(arr));
includes 可以判断一个数组中是否包含某一个元素,并返回true 或false
let arr = [1, 2, 4, 2, 4, 2, 4, 55, 52, 1]
let newArr = []
arr.reduce((prev, curr) => {
newArr.includes(curr) ? newArr : newArr.push(curr);
}, 0)
console.log(newArr);