<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let arr=[1,2,3,6,5,6,5,6,56,10]
// 选择排序法
// function arrpick1(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)
// j--
// }
// }
// }
// return arr
// }
// console.log(arrpick1(arr))
// indexOf
// function arrpick(arr) {
// // 判断是不是数组
// if(!Array.isArray(arr)){
// console.log("error")
// return
// }
// else
// var newarr=[];
// for(let i=0;i<arr.length;i++){
// if(arr.indexOf(arr[i]===-1)){
// newarr.push(arr[i])
// }
// }
// return arr
// }
// console.log(arrpick(arr))
// sort()
debugger
function sortarr(arr){
if(!Array.isArray(arr)){
console.log("error")
return
}
else
arr.sort();
let newarr=[arr[0]];
for(let i=1;i<arr.length;i++){
if(arr[i]!==arr[i-1]){
newarr.push(arr[i])
}
}
return newarr
}
console.log(sortarr(arr))
</script>
</body>
</html>
1.排序法
思路:通过两层for循环,通过内层循环逐个的与外层循环比较,相等用splice方法删除掉内层循环那个数。内层循环自减1
2.indexOf
indexOf判断有无相同的数,有返回第一个索引值,无返回-1
函数内建立一个空数组,通过判断arr[i]是否为-1;为-1表示不同,push该值入新数组。(首先通过isArray判断是否为数组)
3.sort
先sort数组,从小到大排列。建立一个只有第一个值的数组newarr=[arr[0]],
通过循环比较arr[i]是否等于arr[i-1],不等push(首先要判断是否为数组)
4.不使用API
function pickarr(arr){
var result = [];
for(var i = 0;i < arr.length;i++){
for(var j = 0;j < result.length;j++){
if(result[j] == arr[i]){
break;
}
}
if(result.length == j){
// 将arr中当前元素,追加到result末尾
result[result.length] = arr[i];
}
}
return result;
}
console.log(pickarr(arr))