JS基础知识–数组
1.数组
1.Array 数组是一个有序的元素序列,数组中的元素会自动分配下标,
从0开始,方便读写
2.创建数组
1.创建空数组
var 数组名 = [];
2.创建数组的同时初始化元素
var 数组名 = [元素1, 元素2, 元素3, ...];
3.创建空数组
var 数组名 = new Array();
4.创建数组并初始化
var 数组名 = new Array(元素1, 元素2, 元素3, ...);
注意:
var 数组名 = new Array(Num);
只包含一个数值参数时,表示初始化数组的长度
3.数组的使用
1.获取数组的长度
属性:length
使用:数组名.length;
2.访问数组元素
数组中的每一个元素都有对应的下标
元素的下标范围: 0 ~ 数组名.length - 1
语法: 数组名[下标];
3.设置数组元素
数组名[下标] = value;
4.清空数组中的元素
arr.length = 0;
5.循环遍历数组
正序:
for(var i = 0; i < arr.length-1; i++){
arr[i];
}
倒序:
for(var i = arr.length-1; i >= 0; i--){
arr[i];
})
2.数组中的API
1. toString()
将数组中的元素转换为字符串返回,返回值为字符串
et:
var arr = [10,20,30];
console.log(arr.toString()); #返回值为 "10,20,30"
2. join()
将数组中的元素连接成一个字符串并返回,返回值字符串
参数:可选,如果省略参数,默认元素之间以,作为分隔符
可以给参数,指定元素之间的连接符
et:
var arr = [10,20,30];
console.log(arr.join()); #返回值为 "10,20,30"
console.log(arr.join("-")); #返回值为 "10-20-30"
3. reverse()
反转数组元素
返回值:数组,会改变数组的原有结构
4. sort()
对数组中元素进行排序,返回值为数组,会改变数组原有结构
参数:可选,自定义排序函数,默认按照元素的Unicode码升序排序
1.升序的排列函数
function sortAsc(a,b){
return a-b;
}
arr.sort(sortAsc);
解释:
1.sortAsc函数接收两个参数,会自动将数组中相邻的
两个元素传递给参数
2.如果返回值>0,交换两个元素的位置,否则不变。
2.降序
function sortDec(a,b){
return b-a;
}
arr.sort(sortDec);
注意:
非数字字符串是没有办法做减法操作的,可以通过大小的比较
3.匿名函数作为排序函数,直接写在sort()中
arr.sort(function (a,b){ return a-b;})
3.数组的进出栈操作
栈结构:遵循先进后出原则
栈操作可以快速操作数组中的头尾元素
1. push(data)
入栈操作,向数组中的尾部添加元素,可以是一个或多个,
多个数据之间使用,隔开
返回值:返回新数组的长度
2. pop()
出栈操作,删除数组尾部元素
返回值:返回被删除的元素
3. unshift(data)
向数组中的头部添加一个或多个元素,返回数组的长度。
4. shift()
删除数组中头部元素,返回被删除的元素
4.二维数组
数组中每个元素又是一个数组。用法同一维数组。
5.练习:
随意录入一个数字,将数字转换为二进制输出
思路:除二取余,倒序输出
function decode2Bin(){
var num = Number(prompt("请输入一个数字"));
var arr = [];
while(num != 0){
arr[arr.length] = num % 2;
num = parseInt(num / 2);
}
//显示二进制数
arr.reverse();
console.log(arr);
}