JS数据结构——Array数组

数组Array

创建:

1.使用方括号[ ]进行创建和初始化

var arr=[]   //创建一个空数组
var arr=[1,2,3]   //创建一个包含数字的数组

2.使用Array构造函数

var arr=new Array()   //创建空数组
var arr=new Array(1,2,3)   //创建包含数字的数组
var arr=new Array(10)   //创建长度为10的数组

3.判断是否为数组Array.isArray(arr)

var arr=[1,2,3];
Array.isArray(arr)   //true

 

存取函数

不会产生新数组:

1.查找元素indexOf()、lastIndexOf()

var arr=[1,2,3,4,1];
arr.indexOf(1)   //0
arr.lastIndexOf(1)   //4

2.数组转字符串join()、toString()

var arr=["a ","b","c"]
arr.join();   //a,b,c
arr.toString()   //a,b,c

不带逗号的连接:join("")

var arr=['a','b','c'];
arr.join("")   //abc

会产生新数组

1.连接arr1.concat(arr2)

var arr1=[1,2,3];
var arr2=[4,5,6];
arr1.concat(arr2);   //[1,2,3,4,5,6]
arr2.concat(arr1);   //[4,5,6,1,2,3]

2.截取splice(index,length)

var arr=[1,2,3,4,5,6];
var part=arr.splice(3,3);   //[4,5,6]

 

可变函数

1.添加元素push()、unshift()

var arr=[1,2,3];
arr.push(4);   //[1,2,3,4]
arr.push(['a','b','c'])   //[1,2,3,4,['a','b','c']]
arr.unshift(0);   //[0,1,2,3]
arr.unshift(['a','b','c'])   //[['a','b','c'],1,2,3]

2.删除元素pop()、shift()

var arr=[1,2,3];
var back=arr.pop();   //3
var pre=arr.shift();   //1

3.替换元素splice(index,length,new_arr)

var arr=[1,2,3];
var arr1=arr.splice(0,1,'a');   //['a',2,3],arr1=[1]

4.反序reverse()

var arr=[1,2,3];
arr.reverse();   //[3,2,1]

5.排序sort(),按字典顺序对元素进行排序

var arr=[3,2,4,8,1];
arr.sort();   //[1, 2, 3, 4, 8]

默认按照从大到小的顺序进行排列,可添加排列函数

function cmp(a,b){
    return b-a;
}
var arr=[3,2,4,8,1];
arr.sort(cmp);   //[[8, 4, 3, 2, 1]]

 

迭代器方法

不产生新数组

1.forEach(fn)对数组的每个元素执行fn

var arr=[1,2,3];
arr.forEach(function(i){console.log(i*i)});   //1 4 9

2.every(fn),数组的每个元素均使得fn返回true,则every返回true

var arr=[2,4,6,8];
arr.every(function(i){return i%2==0;})   //true

3.some(fn),数组中存在元素使得fn返回true

var arr=[1,2,3,5];
arr.some(function(i){return i%2==0;})   //true

4.reduce(fn),对数组中的元素进行累计fn运算

var arr=[1,2,3];
var sum=arr.reduce(function(res,cur){return res+=cur;},0)   //6,对数组元素求和

var s=['a','b','c'];
var str=s.reduce(function(res,cur){return res+=cur;},'')   //abc,连接字符串

5.reduceRight(fn),反向数组累计fn运算

var s=['a','b','c'];
var str=s.reduceRight(function(res,cur){return res+=cur;},'')   //cba,反向连接字符串

生成新数组

1.arr.map(fn),对数组元素执行fn,并返回结果数组

var arr=[1,2,3];
var new_arr=arr.map(function(i){return i*i})   //[1,4,9]

2.arr.filter(fn),数组过滤,返回包含使得fn为true的元素的数组

var arr=[1,2,3,4,5,6];
var new_arr=arr.filter(function(i){return i%2==0;})   //[2,4,6]

 

posted @ 2020-04-05 12:08  程嘿嘿  阅读(3044)  评论(0编辑  收藏  举报