数组:
1.数组的定义:内存中一块连续的存储单元,这些存储单元具有共同的名称、不同的索引(下标)
2.数组的声明:
1.数组的字面量:[ ]
2.var arr = [ ]声明数组.数组名为arr,数组没有元素
2.Array对象 new Array()
3.数组的属性:length-->表示数组元素的个数。数组名:length
4.数组元素的索引(下标)-->[n]:n为索引,从0开始到元素的个数减1
5.数组元素的访问:数组名【索引】
6.数组的遍历:不重复的访问数组的每个元素
(1)使用for循环遍历:
for(let i = 0;i < a.length;i++){
console.log(a[i]);
}
(2)使用for...in循环:
for(index in 数组名){
循环体语句
}
index:表示的是数组元素的索引
例如 for(let i in arr){
console.log(arr[i]);
}
(3)使用for...of循环:
for( value of 数组名){
循环体语句
}
value:表示数组元素
例如:for(let value of arr){
console.log(value);-->依次将数组arr中的元素赋给value
}
for...of循环
for(value of 数组名){循环体语句}
使用for...of进行遍历
for(let value of arr){
console.log(value);-->依次将数组arr中的元素赋给value
}
(5) forEach循环遍历数组元素
数组名.forEach(function(value,index));{函数体语句}
value:数组元素
index:数组元素的下标(数组元素在数组中的位置编号);
例如: arr.forEach(function(value,index){
console.log(index + `:` + value);
})
map函数:
map函数遍历数组,实际是对数组的过滤。
返回一个新的数组,原数组不变
let 新数组名 = 原数组名.map(function(item)){
return item:函数体语句
}
item表示数组元素
冒泡排序:
原理:大的向下沉,小的向上冒
for(let i = 0;i < arr.length;i++){
for(let j = 0; j < arr.length-1;j++){
if(arr[j] > arr[j+1]){
temp =arr[j]
arr[j]=arr[j+1]
arr[j+1] = temp
}
}
}
var二维数组:
数组中每个元素都有两个下标(由行和列组成的数组)
1.通过字面量[ ]
var arr = [[1,2,3],[4,5,6],[7,8,9]]
2.使用Array对象:
var arr = new Array(new Array(1,2,3),new Array(4,5,6),new Array(7,8,9))
采用循环嵌套输出
二维数组匀速访问:数组名[行下标][列下标]
输出一个二维数组
var arr = [[1,2,3],[4,5,6],[7,8,9]]
let str = "";
for(let i = 0;i < arr.length;i++){ (控制数组的行数)
for(let j = 0;j <arr[i].length;j++){ (控制数组的列数)
str += arr.[i][j] + "\t"; (列与列的间隔)
}
str += "\n"; (换行)
}
console.log(str);
会输出一个三行三列的二维数组,如下
1 2 3
4 5 6
7 8 9
二维数组对角线元素之和;
let sum = 0 左上-右下对角线
let suw = 0 左下-右上对角线
for(let i=0;i<arr.length;i++){
sum += arr[i][i]
suw += arr[i][arr.length - i - 1]
}
console.log('左上-右下对角线元素之和:',sum)
console.log('左下-右上对角线元素之和:',suw)
转发
评论
1
转发
评论
点赞