JS数组及使用方法
一.概念
数组对象的作用是:使用单独的变量名来存储一系列的值。
二.创建
构造函数的方法
var arr = new Array()
var arr = new Array(5)
var arr = new Array("宝宝")
字面量的方法
var arr = [];
var arr = ["宝宝","大可爱"];
三.数组的length属性
1.length:表示数组的长度,就是数组中元素的个数。
2.索引:也叫做下标,是数组中元素的序号,从0开始,最大下标是数组的长度-1;
使用方式: 数组名[下标];
四.数组的遍历
方法1:
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
方法2:
for(var i in arr){
console.log(arr[i]);
}
两种方式的区别:
a.循环数组
for in 循环给循环变量赋值为字符串类型,for in循环必须把所有的元素要循环一遍, 普通的for循环给循环变量赋值为数字类型,普通的for的循环,可以控制循环哪些元素。更加的灵活.
b.循环对象
for in循环可以循环对象 普通for循环,没法直接循环对象。
五.数组的常用函数
1.给数组添加元素:push(), unshift(),splice()
a.push:添加元素:在数组的末尾增加一个元素
var arr = ['Damon','girl','boy'];
arr.push('宝宝'); //修改后的数组为['Damon','girl','boy','宝宝']
b.unshift():添加元素: 在数组的开始添加
var arr = ['Damon','girl','boy'];
arr.unshift('宝宝'); //修改后的数组为['宝宝','Damon','girl','boy']
c.splice():既可以添加元素,也可以删除元素,而且可以在在指定下标删除、添加
var arr = ['Damon','girl','boy','tree','fire','water','zero-one'];
arr.splice(2,0,"宝宝"); //在下标2的位置插入了 宝宝
//数组变为['Damon','girl','宝宝','boy','tree','fire','water','zero-one']
arr.splice(2,1,"大宝");//把原下标为2的元素删除,插入宝宝
//数组变为['Damon','girl','大宝','boy','tree','fire','water','zero-one']
arr.splice(2,3,"小宝");//从下标2开始删除3个,在下标2的位置插入宝宝
//数组变为['Damon','girl','小宝','fire','water','zero-one']
2、从数组中删除元素:pop(), shift(),splice()
a.pop():删除元素:删除数组里最后一个元素,返回值就是被删除的元素
var arr = ['Damon','girl','boy'];
arr.pop(); //修改后的数组为['Damon','girl']
b.shift(): 删除元素: 在数组的开始删除
var arr = ['Damon','girl','boy'];
arr.shift(); //修改后的数组为['girl','boy'];
3.修改数组中的元素:splice(),reverse(),sort()
a.reverse:把数组的元素进行翻转
var arr = ['1','2','3'];
arr.reverse();
console.log(arr) //输出结果为3 2 1
b.sort():排序
var arr = [9, 6, 5, 7, 11, 52, 15];
arr.sort(); //修改后的数组为[5,6,7,9,11,15,52]
以上是针对单纯的整数数组,当数组的元素为对象时,则可能需要根据对象的属性进行排序.
4.从数组中查询:slice()
从数组里取出一部分元素(根据起始下标和结束下标)
var arr = [9, 6, 5, 7, 11, 52, 15];
arr.slice(2,5) //修改后的数组为[5,7,11,52]
注意:和splice区分开
5.concat();//拼接数组,把两个数组拼接起来,也可以拼接元素 concat():可以给数组的末尾增加元素,但是cancat并不会改变原始的数组,concat的返回值是添加元素后的结果
六.经典排序
1.冒泡排序
function fn(){ var arr=[5,3,7,1,2,8,3,1]; // 需要5轮,分别拿出剩下的数中的最大的,最后一个数,就不用管了。 for(var i=0;i<arr.length-1;i++){ // console.log("i",i); for(var j=0;j<arr.length-1-i;j++){ // console.log("j",j); if(arr[j]>arr[j+1]){ // 交换 var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } console.log(arr); }
2.选择排序
function fn(){ var arr=[5,3,7,1,2,8]; // 一共找出五个最小的数,最后一个不用管了,所以,六个数,循环5次。 for(var i=0;i<5;i++){ // i=0 //1、找最小数 var min = arr[i]; var index = i;//index是最小数的下标 // 循环到底 for(var j=i+1;j<=5;j++){ if(arr[j]<min){ min = arr[j]; index = j; } } //2、交换(数组中的最小数和arr[i]) var t = arr[i]; arr[i] = arr[index]; arr[index] = t; } console.log(arr); }
七.个人总结
数组是有名字的一组数据有序排列的集合,是一种引用类型;数组中可以存放各种数据,如字符串类型、数字类型、布尔值、undefined或null,当然,数组的元素也可以没有,此时的数组就是一个空数组;数组的长度用length表示,length的值会随着数组元素的变化而变化,注意下标是从0开始的。
浙公网安备 33010602011771号