遇到的情况
像一般的数组arr=[1,2,3,4,4,5],我们想要不重复的,数组短我手动修改还好
但是一旦遇到长的,成千上万的数据的时候,又想要排除重复的,怎么办呢?
index of
//我有一个数组
let arr = [1, 2, 3, 3, 2, 5, 215, 214, 346, 23, 215]
// 准备空数组
let newArr = []
//遍历数组
for (let i = 0; i < arr.length; i++) {
// indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。
if (newArr.indexOf(arr[i]) == -1)
// 我要匹配首次出现的,放进空数组
newArr.push(arr[i])
}
console.log(newArr);
写成函数是这样的:
function indexof(temp) {
let arr = []
for (let i = 0; i < temp; i++) {
if (arr.indexOf(temp[i]) == -1) {
arr.push(temp[i])
}
}
// 返回arr
return arr
}
双重冒泡
` function maopao(temp) {
// 遍历数组
for (let i = 0; i < temp.length; i++) {
// 遍历
for (let k = i + 1; k < temp.length, k++) {
if (arr[i] = arr[j]) {
arr.splice(j, 1);
//j要保持,避免splice带来的问题
j--
}
}
}
return arr
}`
includes
` let arr = [1, 2, 3, 3, 2, 5, 215, 214, 346, 23, 215]
// 准备空数组
let newArr = []
//遍历数组
for (let i = 0; i < arr.length; i++) {
//includes() 方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。
if (!newArr.includes(arr[i]))
// 我只要出现第一次的(flase)
newArr.push(arr[i])
}
console.log(newArr);`