JavaScript去除数组中重复的元素
js代码
<script>
a = [1, 2, 3, 4, 5, 6, 5, 5, 6]//测试数组
var removeSame = function (arr) {
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)
i-- //splice会改变原数组,arr[i]变成了下一个数,所以需要i--
}
}
}
return a
}
console.log(removeSame(a));
</script>
splice(m,n)方法可以删除数组中序列为m开始的n个元素 将数组第一个元素开始与其后面所有的元素相比较,如果出现相同的元素则删除后一个 直到整个循环结束
if (arr[i] == arr[j]) {
arr.splice(j, 1)
j-- //splice会改变原数组,arr[j]变成了下一个数,所以需要j--
}
因为splice方法会改变原数组,删除之后 arr[ j ] 变成了下一个数,所以需要把序列号往前移(j--)
测试用例:
a = [1, 2, 3, 4, 5, 6, 5, 5, 6]//测试数组
console.log(removeSame(a));
结果: