js 5-18数组去重 二维数组
一、数组去重、最大值
1.去重(方法很多,这里只写了一种)
var arr=[1,3,4,2,1,3,5,3];
for(var i=0,arr2=[1];i
for(var j=0;j
if(arr[i]==arr2[j]){
break;
}
}
if(j==arr2.length){
arr2[arr2.length]=arr[i];
}
}
console.log(arr2);
2.最大值、最小值和和
var sor=[65,78,56,89,92];
for(var i=0,num=0,num1=65,num2=65;i
num+=sor[i];//和
if(sor[i]>num1){
num1=sor[i];//最大值
}
if(sor[i]
num2=sor[i];//最小值
}
}
console.log(num);
console.log(num1);
console.log(num2);
二、栈和队列:
js中没有专门的栈和队列类型,都是用普通该数组模拟的。
何时:只要希望按照顺序使用数组元素时
栈:一端封闭,只能从另一端进出的数组
顺序: FILO
何时:如果希望始终操作最后进入数组的最新的元素时。
如何:
结尾出入栈:
入: arr.push(值);
出: var last=arr.pop();
优:每次出入栈不影响其余元素的位置
开头出入栈:
入: arr.unshift(值);
出: var first=arr.shift();
缺:每次出入栈都会影响每个元素的位置
队列:只能从一端进入,从另一端出
顺序: FIFO
何时:只要按照先来后到的顺序使用元素
如何:
从结尾入队列: arr.push(值)
从开头出队列: var first=arr.shift()
如:var arr=[5,6,7,8,9];
arr.push(10);
console.log(arr);
arr.pop();
console.log(arr);
arr.unshift(4);
console.log(arr);
arr.shift();
console.log(arr);
三、二维数组:
什么是:数组中的元素,又引用了另一个子数组。
何时:
1.存储横行竖列的二维数据
2.对一个大的数组中的元素,进一步分类
如何:
创建:
1.先创建空数组,再添加子数组:
var arr=[];
arr[0]=[2,2,4,0];
arr[1]=[0,2,2,0];
2.在创建数组同时,初始化子数组
var arr=[
[2,2,4,0],//0
[0,2,2,0],//1
...
];
访问元素:
arr[r][c]:访问arr中r位置的子数组中的c位置的元素
越界: r不能越界
遍历:外层循环控制行,内层循环控制列
for(var r=0;r
for(var c=0;c
arr[r][c]//当前元素
}
}
如:var arr=[['w','s','k'],[56,66,32,23],[true,false]];
for(var i=0;i
for(var j=0;j
console.log(arr[i][j]);
}
}