定义一个数组
var arr = [1, 1, 2, 2, 2, 1, 1, 1, 1, 3, 3, 3, 2, 1, 2, 1, 3, 4]
方法一:
for (var i = 0; i < arr.length - 1; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) { //判断前一项和后一项的值,如果相等就去除后一项的值
arr.splice(j, 1)
j--
}
}
}
方法二:
arr.sort((a, b) => { //给数组进行从小到大的排序
return a - b
})
for (var i = 0; i < arr.length; i++) {
if (arr[i] == arr[i + 1]) {
arr.splice(i + 1, 1)
i--
}
}
方法三:
arr.sort((a, b) => {
return a - b
})
for (var i = arr.length - 1; i >= 0; i--) {
if (arr[i] == arr[i - 1]) {
arr.splice(i - 1, 1)
}
}
方法四:
var arr1 = arr.reduce(function (result, item, index) { //利用reduce的方法,进行遍历
if (result.indexOf(item) == -1) { //获取result里面的值,如果有就返回索引,没有就返回-1
result.push(item)
}
return result //返回遍历最后的结果
}, [])
方法五:
var obj = {}, arr1 = []
for (var value of arr) { //直接遍历存在对像里面,对像名不可以重复
obj[value] = 0
}
for (var key in obj) { //把对象名存到数组里面
arr1.push(key - 0)
}
结果: