js数组常用方法总结

好记性不如烂笔头,都是一些很常用的操作数组方法,记录下来方便自己以后查阅。

  • isArray() 判断变量是否是一个js数组
	var arr = [1,2,3,4,5];
    console.log(Array.isArray(arr));  // true
  • join() 把数组转换成字符串,然后给他规定个连接字符,默认的是逗号( ,)
 	var arr = [1,2,3,4,5];
    console.log(arr.join());  // 1,2,3,4,5
    console.log(arr.join('-'));  // 1-2-3-4-5
    console.log(arr);  //[1, 2, 3, 4, 5] 原数组不变
  • push() 添加元素,从数组末尾开始添加,返回新数组的长度
	var arr = [1,2,3,4,5];
	var len = arr.push(6);
    console.log(len);  // 6
    console.log(arr);  // [1, 2, 3, 4, 5, 6]
  • unshift() 添加元素,从数组头部开始添加,返回新数组的长度
	var arr = [1,2,3,4,5];
	var len = arr.unshift(6);
    console.log(len)  // 6
    console.log(arr)  //[6, 1, 2, 3, 4, 5]
  • pop() 移除元素,从数组的末尾开始移除,返回移除的元素
	var arr = [1,2,3,4,5];
	var a = arr.pop();
    console.log(a);   // 5
    console.log(arr)  // [1, 2, 3, 4]
  • shift() 移除元素,从数组的头部开始移除,返回移除的元素
	var arr = [1,2,3,4,5];
	var a = arr.shift();
    console.log(a);   // 1
    console.log(arr)  // [2, 3, 4, 5]
  • sort() 对数组的元素进行排序(请注意是按照字母顺序排列)
    var arr = [1,12,3,42,35];
    var newArr = arr.sort();
    console.log(newArr);  // [1, 12, 3, 35, 42]
    console.log(arr);     // [1, 12, 3, 35, 42]  原数组已改变

	function sortNumber(a,b) {
        return a - b
    }
    var newArr1 = arr.sort(sortNumber); // 如果想按照数值大小进行排序,就需要提供比较函数
    console.log(newArr1); // [1, 3, 12, 35, 42]
  • reverse() 反转数组项的顺序
  	var arr = [1,2,3,4,5];
    var newArr = arr.reverse();
    console.log(newArr);  //  [5, 4, 3, 2, 1]
    console.log(arr);    //  [5, 4, 3, 2, 1] 原数组已改变
  • concat() 将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
    var arr = [1,2,3,4,5];
    var newArr = arr.concat(6,[7,8]);  // 如果参数有数组,最后添加的是数组中的元素
    console.log(newArr);  // [1, 2, 3, 4, 5, 6, 7, 8]  
    console.log(arr);    //  [1, 2, 3, 4, 5]
  • indexOf() 接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。
	 var arr = [1,8,3,4,3,8,6];
    console.log(arr.indexOf(8));  // 1
    console.log(arr.indexOf(8,2));  // 5
    console.log(arr.indexOf(9));  // -1  没有找到则返回-1
  • lastIndexOf() 接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
  	var arr = [1,8,3,4,3,8,6];
    console.log(arr.lastIndexOf(3));  // 4
    console.log(arr.lastIndexOf(3,2)); // 2  注意第二个参数2是从数组末尾开始算的
    console.log(arr.lastIndexOf(9));  // -1
  • slice() 基于当前数组的一项或多项创建一个新数组
    一个参数:返回该参数指定位置到末尾项组成的数组
    两个参数:返回开始到结束位置组成的数组(含头不含尾)
    如果结束位置小于开始位置,则返回一个空数组
    当出现负数时,将负数加上数组长度的值来替换该位置的数
	var arr = [1,2,3,4,5];	
	var arr1 = arr.slice(2);
    console.log(arr1);  // [3, 4, 5]
    var arr2 = arr.slice(2,4);
    console.log(arr2);  // [3, 4]
    var arr3 = arr.slice(1,-2);  //相当于arr.slice(1,3)
    console.log(arr2);  // [2, 3]
  • splice()
    删除:两个参数,第一个参数删除的起始位置,第二个参数要删除的项数,返回由删除项组成的数组;
    插入:多个参数,第一个起始位置,第二个删除的项数,后面是插入项,返回删除项组成的数组;
    修改:三个参数,第一个起始位置,第二个删除项数,第三个替换项,返回删除项组成的数组
     var newArr = arr.splice(2,1);
     console.log(arr);  // [1, 2, 4, 5, 6]
     console.log(newArr); // [3]
     var newArr1 = arr.splice(2,0,7,8);
     console.log(arr);  //  [1, 2, 7, 8, 3, 4, 5, 6]
     console.log(newArr1); // []
     var newArr2 = arr.splice(2,1,9);
     console.log(arr);  // [1, 2, 9, 4, 5, 6]
     console.log(newArr2); // [3]
  • arr.every(function(item){})
    返回一个boolean值 每一项返回true,则返回true
   var arr = [1,2,3,4,5,6];
   var flag = arr.every((item) => {
     return item > 0;
        })
    console.log(flag);  // true
  • arr.filter(function(item){})
    返回一个数组,返回结果为true的项组成的数组
   var arr = [1,2,3,4,5,6];
   var newArr = arr.filter((item) => {
        return item > 3;
    })
    console.log(newArr);  // [4, 5, 6]
  • arr.forEach(function(item){})
    对数组的每一项给定函数,无返回值
 var arr = [1,2,3,4,5,6];
    arr.forEach((item) => {
        console.log(item)    // 1 2 3 4 5 6
    })
  • arr.map(function(item){})
    返回每次函数调用的结果组成的数组
 var arr = [1,2,3,4,5,6];	
 var newArr = arr.map((item) => {
        return item + 1;
    })
    console.log(newArr);  // [2, 3, 4, 5, 6, 7]
  • arr.some(function(item){})
    返回一个boolean值,任一项返回true则返回true
  var arr = [1,2,3,4,5,6];	
  var flag = arr.some((item) => {
        return item > 5;
    })
    console.log(flag);
  • arr.reduce(function(total, currentValue, currentIndex, arr), initialValue) 从数组的第一项开始对数组中的每个元素执行函数,生成一个值
    total : 初始值, 或者计算结束后的返回值。必选
    currentValue:当前元素 必选
    currentIndex:当前元素的索引 可选
    arr:当前元素所属的数组对象 可选
    initialValue:传递给函数的初始值 可选
    var arr = [1,2,3,4,5,6];
    var result = arr.reduce((previousValue,currentValue) => 
    previousValue +  currentValue)
    console.log(result);  // 21
  • reduceRight(function(total, currentValue, currentIndex, arr), initialValue) 从数组的最后一项开始对数组中的每个元素执行函数,生成一个值 参数和reduce()参数一样
  var arr = [1,2,3,4,5];	
  var result = arr.reduceRight((previousValue,currentValue) => {
        return previousValue +  currentValue
    },10)
    console.log(result);  // 25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值