今天学到了数组的使用方法 ,给大家分享一下!
数组源于五种类型Undefined、Null、Boolean、Number和String。
Object类型 *Array类型 *Date类型 *RegExp类型 *Function类型
基本包装类型:Boolean类型、Number类型和String类型
单体内置对象:Global对象、Math对象。
首先创建一个数组
var aa = new Array()
var aa = Array(1,2ww,3,4,5)//数组
console.log(aa)
数据的length属性
(不是只读的,通过这个属性,可以从数组的末尾添加或删除)
var a = ['red','baclk','green'];
a.length = 5, //只有第一个,删除或增加
a[4]='aaa' //添加新项目
console.log(a)
length-1 = 数组最后一项的值始终是length-1 就是为了求这个数组的下标
检测数组
检测数组有两种方式
var aa = [1,2,3,4,5]
console.log(aa instanceof Array); //true 第一种方法 是数组
console.log(Array.isArray(aa)); //true 第二种方法是数组
数组的转换方式
var brr = [1,2,3,'aa','bb',66];
console.log(brr.toString());// 转换为字符串
console.log(brr instanceof Array);//检测为数组
console.log(brr.valueOf())//返回值还是数组
console.log(brr.toLocaleString()) //返回字符串
console.log(brr.join('=='))//不加 参数默认 以,逗号分隔
栈方法
栈是一种LIFO(后进先出)的数据结构,也就是最新添加的项最早被移出
·push()方法:接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
·pop()方法:从数组的末尾移除最后一项,减少数组的length值,然后返回被移除的项。
var aa = [1,2,3,4,5];
console.log(aa.push(6));//返回数组的长度=6
console.log(aa);//在末尾增加数组 结果为1 2 3 4 5 6
console.log(aa.pop(1))// 移除末尾的最后一项 返回被移除的项 = 6
console.log(aa) //在末尾减少数组 结果为1 2 3 4 5
队列方法
队列数据结构的访问规则是FIFO(先进先出)。
unshift()
var aa = [1,2,3,4,5]
// console.log(aa.unshift(3,5,8)); //打印出来返回的是新数组 = 8 console.log(aa); //前端添加新数 3 5 8 12345
shift():从数组的前端移除第一项(也就是位置索引值为0),减少数组的length,值然后返回被移除的项
例:console.log(aa.shift()); //移除第一项 返回值为 3
重排序方法
reverse():反转数组项的顺序
例:var aa = [1,2,3,4,5]
console.log(aa.reverse()) 反转结果=5,4,3,2,1
// sort()排序:
例:var aa = [1,23,42,3,5,4,]
console.log(aa.sort()) //结果为1,23,3,4,42,5 比较第一位数
console.log(aa.sort(function(a,b){
return a-b//从小到大排序 1 3 4 5 23 42升序
return b-a//从大到小排序 42 23 5 4 3 1 降序
操作方法
·concat()方法可以基于当前数组创建一个新数组,连接两个或两个以上的数组。
例:
var a = [1];
var b = [2];
var c = [5,7,8]
console.log(a.concat(2)) //连接后结果为 [1,2]
console.log(a.concat(b,c)) //连接后结果为[1,2,5,7,8]连接多个
slice():方法可提取字符串或者数组的某个部分, 并以新的字符串或数组返回被提取的部分
例:var aa = [1,2,3,4,5,6,7,8];
console.log(aa.slice(2,4)) 返回被提取的值 3,4 (2是下标开始 4是结束 提取结束前一个数)
splice():方法用于插入、删除或替换数组的元素 splice(start(从哪开始删),howmany(删多少) 新元素1,新元素2,)删除 插入 替换
例:
var aa = [1,2,3,4,5,6,7,8];
console.log(aa.splice(2,4)) //从第二个开始删 删四个 结果为[3,4,5,6]
console.log(aa)// 改变新数组 结果为1 2 7 8
console.log(aa.splice(2,4,'666')) //增加新元素 从第二个开始
console.log(aa) //结果 为1 2 ‘666’ 7 8
位置方法
·indexOf():返回某个指定的字符串值或者某个数组元素值在字符串或者数组中首次出现的位置
例:var arr = ['a','b','c','d','a','c','b']
console.log(arr.indexOf('a',3))//从第三个开始找a 找到a后从前往后数下标 结果是4
indexOf();传入要找的项,找到返回下标,找不到返回-1
·lastIndexOf():返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索
例:console.log(arr.lastIndexOf('a',-4))//从后往前找 从-4往前找a 找到后从前往后数下标 结果为0
迭代方法
ES5为数组定义了5个迭代的方法。
·every()
对数组的每一项运行给函数,如果每一项都返回true,那就返回true
some()
对数组的每一项给定函数,如果里面有一项返回true 那就返回true
filter()
对数组的每一项给定函数,他会返回函数返回true的项组成的数组
map()
对数组的每一项给定函数,返回每次函数调用的结果组成的数组
forEach()
对数组的每一项给定函数,这个没有返回值 给了return也没用!