js 数组方法

296 阅读3分钟

concat

合并两个不同的数组

let a = [1, 2, 3];
let b = [4, 5, 6];

let c = a.concat(b);

console.log(c);

输出:[ 1, 2, 3, 4, 5, 6 ]

join

将数组元素使用某个字符连成一个字符串

let a = [1, 2, 3];

let b = a.join("-");

console.log(b);

输出:1-2-3

indexOf

返回数组中给定的第一元素的索引,没有该元素就返回-1

let a = [1, 2, 3];

let b = a.indexOf(0);
let c = a.indexOf(1);
let d = a.indexOf(3);

console.log(b);
console.log(c);
console.log(d);

输出:

   -1
    0
    2

lastIndexOf

和上一个相同,返回数组中给定的第一元素的索引,没有该元素就返回-1,不同点是这个是从尾部开始找

let a = [1, 2, 3, 3];

let b = a.lastIndexOf(0);
let c = a.lastIndexOf(1);
let d = a.lastIndexOf(3);

console.log(b);
console.log(c);
console.log(d);

输出:

  -1
   0
   3

slice

通过索引分割新的数组返回

let a = [1, 2, 3];

let b = a.slice(0, 2);

console.log(b);

输出:[ 1, 2 ]

toString

将数组以字符串类型返回

let a = [1, 2, 3];

let b = a.toString();

console.log(b);
console.log(typeof b);

输出:1,2,3和string

reduce

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

let a = [1, 2, 3, 4];

function getSum(num1, num2) {
  return num1 + num2;
}

let b = a.reduce(getSum);

console.log(b);

输出:10

如果不理解我们可以使用Visual Studio Code对getSum方法时打个断点,就清晰明了了

首先我们建一个main.js文件,里面写上我们上面的代码 image.png

在getSum方法右侧点上一个小红点 image.png

我们使用node运行我们的js文件里面的代码 image.png

这里我们可以看的出第一次进入getSum方法时num1=1,num2=2 image.png

我们点击这里继续运行 image.png

这里可以看出我们return出来的值是3,我们再往下运行 image.png

这里可以看出,第二次进入getSum方法时num1=3,num2=3,return出来的值是6,我们再往下运行 image.png

这里可以看出,第二次进入getSum方法时num1=6,num2=4,return出来的值是10,我们再往下就运行到console.log(b)了,这里就返回了10,所以reduce是把数组里面的元素一个一个往下累加的 image.png

reverse

颠倒数组中元素的顺序

let a = [1, 2, 3, 4];

let b = a.reverse();

console.log(b);

输出:[ 4, 3, 2, 1 ]

filter

可以理解这是个数组的过滤器,对数组中的每一个元素运行给定的函数,只返回给定的函数返回true的元素

let a = [1, 2, 3, 4];

function getFilter(num) {
  if (num % 2 === 0) {
    return true;
  }
}

let b = a.filter(getFilter);

console.log(b);

输出:[ 2, 4 ]

forEach

数组遍历

let a = [1, 2, 3, 4];

a.forEach((item, index) => {
  console.log(`${item}--${index}`);
});

输出:

  1--0
  2--1
  3--2
  4--3

map

对数组中的每一个元素运行给定的函数,返回每次函数调用的结果组成的数组,可以理解为给定一个函数处理数组里每一个元素

let a = [1, 2, 3, 4];

function getMap(num) {
  return num + 1;
}

let b = a.map(getMap);

console.log(b);

输出:[ 2, 3, 4, 5 ]

sort

按照元素的ASCII值进行排序

ASCII表

e850352ac65c103880a07b53bc119313b17e8941.webp 来源:百度百科

欢迎评论区补充,并提出宝贵的建议