l 数组中的增删改,有一个数组var list=[ “a”,“b”,“c”,“d” ]
在数组尾部新增一个或多个元素,多个元素用逗号隔开
l push();方法,返回值为新增元素后数组的长度,会影响原数组(长度)
list.push(999);表示在list数组后添加一个第四个元素,内容为999
在数组的头部新增一个或多个元素
l unshift();方法返回值为新增元素后数组的长度,会影响原数组(长度)
list.unshift(1,2);表示在list数组前添加两个元素,内容分别为12和2
删除数组尾部的元素
l pop();方法,返回值为被删除的元素,会影响原数组(长度)
list.pop();表示删除数组尾部的元素
删除数组头部的元素
l shift();方法,返回值为被删除的元素,会影响原数组(长度)
list.shift();表示删除数组头部的元素
l splice()方法
l splice(startInsdex,length);删除,startInsdex表示起使下标,删除length个元素
list.splic(1,2);表示自下标为1的位置开始,删除后面的两个元素,返回值为被删 除的数组,会影响原数组
最终结果为[ “a”,“d” ]
l splice(startInsdex,0,arr1,arr2...arrN);新增,startInsdex表示起使下标,0表示不删除元素
list.splic(1,0,“hello”);表示自下标为1的位置开始,新增一个或多个元素,返回值 为空数组,因为被删除的数组,会影响原数组
最终结果为[ “a”,“hello”,“b”,“c”,“d” ]
l splice(startInsdex,length,arr1,arr2...arrN);修改,startInsdex表示起使下标,删除length个元素,新增arr1...元素
list.splic(1,2,“hello”,“world”);表示自下标为1的位置开始,删除后面的两个元 素,并新增两个元素hello和world,返回值为被删除的数组,会影响原数组
最终结果为[ “a”,“hello”,“world”,“d” ]
l reverse();方法,表示数组反转,返回值为反转后的原数组,会改变原数组
最终结果为[ “d”,“c”,“b”,“a” ]
l slice(startInsdex,endInsdex);方法,表示数组的裁切,startInsdex表示起始下标,endInsdex表示终止下标,返回值为被裁切的元素形成的新数组,不会改变原数组
list.slice(1,3);表示裁切下标为1到小于小于下标为3之间的元素,如果不传入参 数,会使用默认值,得到一个与原数组相同的新数组,相当于复制了一个原数组。不会 影响原数组
[ “b”,”c” ]
l concat();方法,表示数组的拼接,将多个数组或元素拼接形成一个新的数组,不会影响原数组,如果拼接的是数组,则会将数组展开,再把该数组中的每一个元素放在新数组中,如果是其他类型,会直接将其放在新数组中,不会改变原数组。如果不传参数会得到一个与原数组相同的新数组。不会影响原数组
list.concat(arr,brr,“hello”);表示list数组拼接数组arr和brr,也可以拼接元素
l includes();方法,表示判断数组中是否存在某个元素,如果存在返回true,反之则为false,注意此方法是ES6新增的,存在兼容问题。不会影响原数组
list.includes(“a”);返回值为true;
l indexOf();方法,表示返回某个元素在数组中第一次出现的位置,如果存在该元素会返回下标,如果不存在会返回-1;可以通过返回值来变相判断是否存在该元素。此方法是属于ES5的方法。不会影响原数组
list.indexOf(“a”);返回值为1。
l join(char);用特定的字符,将数组拼接形成字符串,不会影响原数组
list.join(“-”);输出结果为a-b-c-d,如果需要输出结果为abcd,就可以将参数改为 空字符串,如果不传入参数,默认会使用逗号(,)拼接。
l sort();方法,表示将从小到大的顺序元素排列,会影响原数组,其中有两种用法
根据字符在ASCII码表的位置进行排序,为sort方法的默认排序方式,返回值为 排序后的原数组,会改变原数组
list.sort(function (a,b){//a和b为形参,代表前后两个数值
return a-b;//可理解为a-b>0,前一个数大于后一个数时交换位置,即从小 到大排序
return b-a;//b-a>0,a<b,从大到小排列
});
l forEach();方法,表示遍历数组,每次循环中执行传入的回调函数
list.forEach(function (item,index,array){
console.(item);//打印每次循环的元素
console.(index);//打印每次循环的当前下标
console.(array);//打印原数组
})
l map();方法,表示遍历数组,每次循环中执行传入的回调函数,根据回调函数的返回值生成一个新的数组,最后输出的值为一个元素只有”1“的新数组,长度则为list的长度
list.map(function(){
return “1”;
})
l filter();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数返回一个条件,把满足条件的元素筛选出来放到新数组中
list.filter(function (item,index,array){
return item>=60;//把满足条件的元素返回到新数组中
})
l some();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数返回一个条件,只要有一个元素满足条件,就返回true,都不满足就返回false,可以判断数组中是否存在满足某个条件的元素
list.some(function (item,index,array){
return item>=60;
})
l every();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数返回一个条件,全都满足返回true,只要有一个不满足,就返回false。
list.every(function (item,index,array){
return item>=60;
})
l reduce();方法,表示遍历数组,每次循环中执行传入的回调函数,回调函数会返回一个值,将该值作为初始值prev,传入到下一次函数中,prev为初始值,也可以通过reduce的第二个参数设置初始值(红色字体),如果不设置初始值默认是数组中的第一个元素,遍历时从第二个元素遍历,返回值为最终求取结果
list.reduce(function (prev,item,index,array){
return prev + item;//prev为初始值(类似求和sum)
},0)
l reduceRight();方法,用法与reduce一样,只不过是从右往左
list.reduce(function (prev,item,index,array){
return prev + item;//prev为初始值(类似求和sum)
})
伪数组
l 又称类数组,表示有数组的特性(length,下标取值,可以被循环遍历,不建议用fo...in,使用for...in虽然可以被遍历,但是会多出一些属性),但是不能使用数组的方法(push(),concat()等方法)
l 如果需要使用数组的方法,就可以将伪数组转化为真数组
Array.from();//表示接收一个伪数组,返回对应的真数组
原文:https://www.cnblogs.com/ZeroZeroNine/p/14296188.html