JavaScript数组常用API

112 阅读3分钟

一、修改原数组的API

(1)、pop() 取出末尾,并返回这个元素

 var arr = [10, 20, 30, 40, 50];
 var popRes = arr.pop();
 console.log(popRes, arr);

image.png

(2)、shift()取出开头,并返回这个元素

 var arr = [10, 20, 30, 40, 50];
 var shiftRes = arr.shift();
 console.log(shiftRes, arr);

image.png

(3)、push() 添加末尾,且返回length(数组长度)

   var arr = [10, 20, 30, 40, 50];
   var pushRes = arr.push(60);
   console.log(pushRes, arr);

image.png

(4)、 unshift()在数组开头添加一个或者多个元素,且返回length(数组长度) var arr = [10, 20, 30, 40, 50]; var unshifts = arr.unshift(0); console.log(unshifts, arr); image.png

(5)、splice() 用于添加或删除数组中的元素

   var color = ['pink', 'orange', 'red', 'black'];
   color.splice(2, 0, 'blue', 'white');
   console.log(color);

image.png

(6)、reverse()逆转数组的顺序

 var arr = [5, 4, 3, 2, 1];
 var rse = arr.reverse();
 console.log(arr, rse);

image.png

(7)、sort()给数组排序(首位数默认从小到大)

 var arr = [5, 9, 3, 4, 2, 1, 6, 10];
    var rse = arr.sort();
    console.log(arr, rse);
    //结果[1, 10, 2, 3, 4, 5, 6, 9]

    // 正序排序
    var rse = arr.sort(function(a, b) {
        return a - b
    })
    console.log(arr, rse);
    //结果[1, 2, 3, 4, 5, 6, 9, 10] 

    //倒序排序
    var rse = arr.sort(function(a, b) {
        return b - a
    })
    console.log(arr, rse);
    [10, 9, 6, 5, 4, 3, 2, 1]
   

image.png

二、不改变源数组(不会对原数组造成副作用),返回一个新数组。

(1)、concat()把传入的数组,或者元素+数组合并成一个新的数组,返回这个新数组

    var arr1 = [10, 20, 30, 40];
    var arr2 = arr1.concat([50, 60, 70])
    console.log(arr2, arr1);

image.png

(2)、slice()截取数组,不会改变原数组

 第一个参数0,第二个参数3
 var arr1 = [10, 20, 30, 40];
 var arr2 = arr1.slice(0, 3);//从数组的第0位截取到数组的第3位
 console.log(arr2);
 如果不给第二个参数,那么就从第1个参数的位置截取到数组的最后
  var arr2 = arr1.slice(2);
 

image.png

image.png

(3)、join()把数组中的元素连接成一个字符串并返回,不会改变原数组

可以选择用什么作为分隔符,空字符串就代表没有分隔符

var arr1 = [10, 20, 30, 40];
 var arr2 = arr1.join('');
 var arr2 = arr1.join(',');
 console.log(arr2);
 

image.png

image.png

(4)、indexOf()查找元素在数组中第一次出现时的索引,如果没有就返回-1

 如果数组中有你要找的数字,就返回你要找的数字的索引
 var arr1 = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6];
 var arr2 = arr1.indexOf(3);
 console.log(arr2);
 

image.png

如果数组中没有你要找的数字,就返回-1
var arr1 = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, ];
var arr2 = arr1.indexOf(7);
console.log(arr2)`;

image.png

(5)、lastIndexOf()查找元素在数组中最后一次出现时的索引,如果没有就返回-1

  var arr1 = [1, 2, 4, 6, 8, 1, 2, 4, 6, 8];
  var arr2 = arr1.lastIndexOf(4);
  console.log(arr2);
  

image.png

三、数组遍历方法

(1)、forEach() 传入一个函数,把数组的每一项作为函数的参数被调用,不改变原数组

 var arr = [10, 20, 30, 40, 50, 60];
    arr.forEach(function(item) {
        console.log(item);
    })

image.png

(2)、map()传入一个函数,把数组的每一项作为函数的参数被调用,然后用函数每次的返回值组成新的数组并返回,不改变原数组

  /map  数组中元素为原始数组的平方根
  var arr = [10, 20, 30, 40, 50, 60];
  var arr1 = arr.map(function(item) {
        return item ** 2;
    })
    console.log(arr1);
    

image.png

(3)、filter()传入一个函数,把数组的每一项作为函数的参数被调用,在函数内部判断符合条件的每一项,把它们组成新的数组并返回,不改变原数组

 var arr1 = [10, 20, 30, 40];
 var arr2 = arr1.filter(function(item) {
        return item > 30;
    })
    console.log(arr2, arr1);
    

image.png