去重
//第一种
var ary =[1,1,1,2,3,2,3];
for (var i=0;i<ary.length-1;i++){
//拿出的这一项
var currentItem = ary[i];
for (var j = i+1;j<ary.length;j++){
// 后面的每一项
var afterItem = ary[j];
if(currentItem == afterItem){
ary.splice(j,1);
// 数组的下标塌陷问题
j--
}
}
}
console.log(ary);
//第二种
var ary =[1,1,1,2,3,2,3];
//创建对象拿来装属性名和属性值都是数组元素
var obj = {};
for (var i = 0;i< ary.length;i++){
var item = ary[i];
if (typeof obj[item]=="undefined"){
obj[item]=item;
}else{
ary.splice(i,1);
i--;
}
}
console.log(ary);
// 第三种
var ary =[1,1,1,2,3,2,3];
//创建对象拿来装属性名和属性值都是数组元素
var obj = {};
for (var i = 0;i< ary.length;i++){
var item = ary[i];
if (typeofobj[item]=="undefined"){
obj[item]=item;
}else{
ary[i]=ary[ary.length-1];
ary.length--;
i--;
}
}
console.log(ary);
//数组的去重
var ary =[1,1,1,2,3,2,3];
var newAry = [];
for (var i = 0;i< ary.length;i++){
var item = ary[i];
if (newAry.indexOf(item) ==-1){ //查找,没有的话返回值就是-1
newAry.push(item); // 末尾增加一项
}
}
console.log(newAry);
冒泡排序
// 冒泡排序
var ary = [8,2,1,5]
for (var i=0;i<ary.length-1;i++);{ //-1是循环少一轮
for (var j=0;j<ary.length-1-i;j++);{
var current=ary[j];
var next=ary[j+1];
if(ary[j]>ary[j+1]){
var temp=ary[j] //新的等于第一个值,
ary[j]=ary[j+1] //第一个等于第二个值
ary[j+1]=temp //第二个等于新的
}
}
}
递归
function fn (num){
if (num<0)return;
console.log(num);
fn(num-1)
}
fn(10)
// 1到10的和:
functiontotol(num){
if (num>10)return0
returnnum+totol(num+1)
}
console.log(total(1));