ES5数组新方法(详解)

导读

本文介绍ECMAScript 5 语法新增的常用数组新方法


 ①:forEach

  let Arr = [20, 50, 87, 99, 10];
  let newarr = Arr.forEach((element, index) => {
    element += 1;
    console.log(element); //20,50,87,99,10
  });
  console.log(Arr);     //[20,50,87,99,10]
  console.log(newarr);  //undefined

forEach的callback接收三个参数,分别是当前项、当前索引、原数组,没有返回值,且不能使用return、break跳出循环;


 ②:map

  let Arr = [20, 50, 87, 99, 10];
  let newarr = this.Arr.map(element => {
    Arr.push(1);
    return (element += 1);
  });
  console.log(Arr);     //[20, 50, 87, 99, 10, 1, 1, 1, 1, 1, 1, 1, 1]
  console.log(newarr);  //[11, 21, 22, 31, 43, 56, 67, 76]

map可以返回一个新数组,且新增项不会进入本次循环,性能不如forEach;


 ③:filter

  let Arr = [20, 50, 87, 99, 10];
  let newarr = Arr.filter(element => {
    return element > 50;
  });
  console.log(Arr);     //[20, 50, 87, 99, 10]
  console.log(newarr);  //[87, 99]

filter返回符合判断条件的新数组,类似forEach + push组合,用到次数比较多;


④:every

  let Arr = [20, 50, 87, 99, 10];
  let IStrue = Arr.every(element => {
    return typeof element === "number";
  });
  console.log(IStrue);  //true

every返回布尔值,如果数组内所有项都满足判断条件 返回true,有一项不满足则返回false;


⑤:some

  let Arr = [20, 50, 87, 99, 10];
  let IStrue = Arr.some(element => {
    return element > 50;
  });
  console.log(IStrue);  //true

some返回布尔值,如果数组内所有项只要有一项满足判断条件 返回true,均不满足 则返回false;


⑥:indexOf

  let Arr = [20, 50, 87, 99, 10];
  console.log(Arr.indexOf(99));   //3
  console.log(Arr.indexOf(100));  //-1

indexOf会检索数组中的某个元素值并返回其位置,若不存在则返回-1;

发布了17 篇原创文章 · 获赞 76 · 访问量 9657

猜你喜欢

转载自blog.csdn.net/qq_43471802/article/details/102702526