02月23, 2017

js中常用的操作数组的方法

整理一下JS对于数组的常用的操作。 1.join()(通俗点就是把数组每个元素转换成字符串拼接一下,默认用","拼接),下面这个可以稍微注意一下

var arr = [1,2,3,4,5,6];
arr.join("")//123456 数组arr不会改变

2.reverse()(这个就是把数组颠倒一下)

var arr = [1,2,3,4,5,6];
arr.reverse()//[6, 5, 4, 3, 2, 1] 数组arr改变

3.sort()(这个的话是排序,但是要注意的是,其实根据字母表顺序来做排序的)

var brr = [333,22,1111,4];
brr.sort();//[1111, 22, 333, 4]  数组brr改变

反一反顺序的话

var brr = [1111,22,333,4];
brr.sort(function(){ return 1});//[4, 333, 22, 1111]

数字大小排序的话(另一种顺序用b-a)

var brr = [1111,22,333,4];
brr.sort(function(a,b){ return a-b});//[4, 22, 333, 1111]

4.concat()(数组的拼接)

var arr = [1,2,3,4,5,6];
arr.concat([7,8],[9,10]);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  这里arr是不会变化的  只是一个返回值

还要注意一种情况

var arr = [1,2,3,4,5,6];
arr.concat([7,8],[9,[10,11]])//[1, 2, 3, 4, 5, 6, 7, 8, 9,[10,11]]

5.slice()(方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。)

var arr = [1,2,3,4,5,6];

6.splice()(删除、插入数组元素,该方法会改变数组本身,第一个参数制定插入/删除的起始位置;第二个参数为删除的元素个数,若未指定,删除后面所有的元素;后面随意跟参数,为要插入的元素)

var arr = [1,2,3,4,5,6];
arr.splice(6);//[1, 2, 3, 4, 5, 6]
arr.splice(1,1);//[1, 3, 4, 5, 6]
arr.splice(2,0,'a','b');//[1, 3, "a", "b", 4, 5, 6]
arr.splice(2,2,[1,2],3);//[1, 3,[1,2] 3, 4, 5, 6]

7.pop()和push()(把数组当栈来使用,通俗点讲就是从数组尾部删除/添加元素)

var arr = [];
arr.push(6,1); //[6,1]
arr.pop(); //[6]

8.shift()和unshift()(和pop、push刚刚相反,从数组头部删除/添加元素)

var arr = [];
arr.unshift(6,1);[6,1]
arr.shift();[1]

9.toString()(把类对象转化为字符串)

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

10.forEach()(遍历数组)

var arr = [1,2,3,4,5,6];
var sum = 0;
arr.forEach(function(value){ sum += value});//21
arr.forEach(function(v,i,a){ a[i] += v});//[2, 4, 6, 8, 10, 12]

11.map()(其实也是一个循环遍历,调用数组的每个元素传递给制定函数,执行方法后返回一个新的数组)

var arr = [1,2,3,4,5,6];
arr.map(function(value){return value*value});//[1, 4, 9, 16, 25, 36]

12.filter()(可以理解为对一个数组做过滤查询,不改变原数组)

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

13.every()和some()(这两个函数返回的都是Boolean值,every表示数组所有元素是否满足某一条件,some表示数组是否有元素满足某一条件)

var arr = [1,2,3,4,5,6];
arr.every(function(value){ return value < 10});//true
arr.every(function(v,i){ return v%2==0});//false

var arr = [1,2,3,4,5,6];
arr.some(function(value){ return value < 10});//true
arr.some(function(v,i){ return v%2==0});//true
arr.some(function(v,i){ return v<0});//false

14.reduce()和reduceRight()(就是数组元素做累积计算,最后输出一个值)

var arr = [1,2,3,4,5,6];
arr.reduce(function(x,y){ return x+y});//21 求和
arr.reduce(function(x,y){ return x*y});//720 求积
arr.reduce(function(x,y){ return x>y?x:y});//6 取数组最大元素

var brr = ["a","b","c","d","e","f"];
brr.reduce(function(x,y){ return x+y});//"abcdef"
brr.reduceRight(function(x,y){ return x+y});//"fedcba"

15.indexOf()和lastIndexOf()(查找某值第一次在数组中出现的下标)

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

本文链接:http://blog.hiraetho.com/post/common-array-function.html

-- EOF --

Comments