数组基本知识
什么是数组? 一组数据的集合存储在单个变量中
为何创建数组:用来存放一组数据
ECMAscript数组和其他的区别是什么?:
1、每一项都可以保存任何数据类型的数组
2、数组大小可以动态调整
元素:数组里存储的一个数据就是一个元素
下标或索引(特别注意:是从0开始的!!!)
数组的长度:arr.length //获取数组长度 返回值 number
数组的特点
- 数组里的元素是有顺序的
- 数组可以存任何类型的值
new/字面量,创建数组
1、Array构造函数
语法:new Array()
**赋值:**通过:数组名[] = 值 进行赋值
var 数组名 = new Array();
var arr = new Array(); //创建一个新的空数组
var arr1 = new Array(2);//这个2 表示数字长度为2 里面有两个空的数组元素
var arr1 = new Array(2 ,3 ) //等价域[2,3],这样写表示里面有两个数组元素,是2和3
console.log(arr1)
小括号说明:
(1)预先知道数组要保存的项目的数量 比如10个数组元素
(2)向Array构造函数中传递数组应该包含的项
小括号内一个数值,表示数组的长度,多个表示每个项
2、 数组字面量表示法
**语法:**由一对包含数组项的方括号表示,多个数组项用逗号隔开
var 数组名 = []; //使用数组字面量创建空的数组
var 数组名 = ['小白','小黑','小黄']; //使用数组字面量创建带初始值的数组
var arr = [1 , 2 , 3];
console.log(arr[0]);
数组元素的读写
- **访问数组:**数组名[索引]
- 从0开始,依次往后,取不到返回undefined
数组的遍历
- **遍历数组:**循环:for循环
- for(i = 0 ; i<arr.length ; i++)
转换数组元素为字符串
先声明一个空字符串变量,使用字符串+任何值都为字符串的隐式转换,进行相加
数组新增元素
1、通过修改length长度以及增加索引号增加长度
var arr = ['red', 'green' ,'blue']
console.log(arr.length)
arr.length = 5; //把我们的数组长度修改了为5 ,里面应该有五个元素
2、通过新增数组元素,修改length长度,新增数组元素修改索引号 追加数组元素
//新增数组元素,修改索引号
var arr1 = ['red', 'green' ,'blue'];
arr1[3] = 'pink'; console.log(arr1);
注意:
- 可以通过length从数组的末尾移除项或者向数组添加项
arr.length = 3 ; 会截取第四项 ,不建议
- 把一个值放在超出当前数组大小的位置上,会重新计算数组长度,长度值等于最后一项索引加1
数组的最后一个索引等于数组长度减一
3、使用内置对象增加数组**
- arr.push(元素1,元素2) //添加到末尾 返回数组新长度
- arr.unshift(元素1,元素2)//添加到开头 返回数组新长度
4、使用内置对象删除数组元素
- arr.pop(元素1,元素2) //从末尾删除数组第一个元素 返回删除的值
- arr.shift(元素1,元素2)//从开头删除第一个数组元素 返回删除的值
筛选数组放到新数组里面
//方法1
var arr = [2,0,6,1,77,0,52,0,25,7];
var newArr = [];
var j = 0;
for(var i = 0 ; i<arr.length ;i++){
if(arr[i]>=10){ //新数组索引号应该从0开始,依次递增
newArr[j] = arr[i];
j++;
}
} console.log(newArr);
//方法2
var arr = [2,0,6,1,77,0,52,0,25,7];
var newArr = []; //刚开始newArr.length就是0
for(var i = 0 ; i<arr.length ;i++){
if(arr[i]>=10){
//新数组从0开始,依次递增
newArr[newArr.length] = arr[i];
}
}
翻转数组
//将数组['red','green','blue','pink','purple'];
//1、声明一个新数组newArr
//2、把旧数组索引号第四个取过来(arr.length - 1),给新数组索引号第0格元素(newArr.length)
//3、我们采取递减的方式 i--
var arr = ['red','green','blue','pink','purple'];
var newArr = [];
for(var i = arr.length-1 ; i>=0 ;i--){
newArr[newArr.length] = arr[i]
} console.log(newArr);
冒泡排序
//冒泡排序
var arr = [5,4,3,2,1,]
for(var i =0 ;i <arr.length <i++){
for(var j = 0; j<=arr.length-1-i ;j++){
if(arr[i]> arr[j+1]){
var temp = arr[j+1];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}