arr: [
[1, 2, 3],
[2, 3, 4],
[4, 5, 6],
[12, 3, 4],
[4, 25, 6],
[14, 25, 16],
[14, 15, 16],
[14, 15, 15, 116, 19],
],
newarr: [],
方法 //去重
quchong() {
var newArr = []
for (var i = 0i <this.arr.lengthi++) {
for (var j = 0j <this.arr[i].lengthj++) {
var v = this.arr[i][j]
// 判断是否存在数组中,不存在在往下走
if (!newArr.includes(v)) {
newArr.push(v)
this.newarr = newArr
}
}
}
},
本篇含有数组去重,最大值最小值,API剩下的四个还有二维数组
一、数组去重、最大值
1.去重(方法很多,这里只写了一种)
var arr=[1,3,4,2,1,3,5,3]
for(var i=0,arr2=[1]i
for(var j=0j
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=65i
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=0r
for(var c=0c
arr[r][c]//当前元素
}
}
如:var arr=[['w','s','k'],[56,66,32,23],[true,false]]
for(var i=0i
for(var j=0j
console.log(arr[i][j])
}
}
End!