返回顶部
首页 > 资讯 > 精选 >ES6中数组新增的方法有哪些
  • 166
分享到

ES6中数组新增的方法有哪些

2023-06-29 17:06:27 166人浏览 独家记忆
摘要

小编给大家分享一下es6中数组新增的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在ES6之前,创建数组的方式有2种:一: 通过数组字面量let&nbs

小编给大家分享一下es6数组新增的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在ES6之前,创建数组的方式有2种:

一: 通过数组字面量

let array = [1,2,3];console.log(array);//[1,2,3]

二: 通过new Array()创建数组

let array = new Array(1, 2, 3);console.log(array); //[1,2,3]

Array.find((item,indexArr,arr)=>{}) 掌握

找出第一个符合条件的数组成员。

它的参数是一个回调函数,对所有数组成员依次执行该回调函数。

直到找出第一个返回值为true的成员,然后返回该成员。

如果没有符合条件的成员,则返回undefined。

-- 找出第一个大于15的数字let arr = [10, 20, 30]let firstItem = arr.find((item, index, Arr) => {    return item > 15})console.log('firstItem==>', firstItem); //输出20-- 找出第一个大于19的数字的这一项的值let arr = [{    age: 10  }, {    age: 20  }, {    age: 30  }]let firstItem = arr.find((item, index, Arr) => {    return item.age > 19})console.log('firstItem==>', firstItem); //输出{age: 20}

Array.findIndex((item, index, Arr) => {}) 掌握

数组实例的 findIndex 方法的用法与find方法非常类似,

返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

let arr = [{    age: 10}, {    age: 20}, {    age: 30}]let a = arr.findIndex((item, index, Arr) => {    return item.age > 15})let b = arr.findIndex((item, index, Arr) => {    return item.age > 45})console.log('a==>', a); //输出1console.log('b==>', b); //输出-1//查找数组的某一项是否有某个值//返回第一个符合条件的数组成员的位置const arr = [{    id: 001}, {    id: 002}, {    id: 003}];let index = arr.findIndex(item => {    return item.id == '004'})console.log(index);

Array.flat()用于拉平嵌套的数组[推荐-超级好用]

数组的成员有时还是数组,Array.flat()用于将嵌套的数组“拉平”,变成一维的数组。

该方法返回一个新数组,对原数据没有影响。[1, 2, [3, 4]].flat() 读音【fu la t】flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组。可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。[1, 2, [3, [4, 5]]].flat()上面代码中,表示想要拉平的层数,默认为1// [1, 2, 3, [4, 5]][1, 2, [3, [4, 5]]].flat(2)上面代码中,flat()的参数为2,表示要“拉平”两层的嵌套数组。// [1, 2, 3, 4, 5]如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。[1, [2, [3]]].flat(Infinity) // [1, 2, 3]如果原数组有空位,flat()方法会跳过空位。[1, 2, , 4, 5].flat()// [1, 2, 4, 5]

Array.at()返回对应下标的值[超级好用]

我们都知道javascript不支持数组索引值为负索引。 

那么想要表示数组的最后一个成员,不能写成arr[-1],只能使用arr[arr.length - 1]。

为了解决负索引这个问题,es6中为数组实例增加了at()方法,接受一个整数作为参数。

返回对应位置的成员,支持负索引。

这个方法不仅可用于数组, 也可用于字符串和类型数组( TypedArray)。

如果参数位置超出了数组范围,at()返回undefined。

const arr = [100, 120, 18, 130, 4];console.log(arr.at(1)) //120console.log(arr.at(-1)) //4console.log(arr.at(-5)) //100console.log(arr.at(-6)) //undefined

Array.from() [掌握]

一个类似数组的对象,Array.from将它转为真正的数组。

需要注意的是:这个类似数组的对象必须要有length属性才可以,转为数组。

否者将会转为为一个空数组

let arrayLike = {  '0': 'a',  '1': 'b',  '2': 'c',  length: 3};// ES5的写法var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']// ES6的写法let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']当没有类似数组的对象没有length属性let arrayLike = {  '0': 'a',  '1': 'b',  '2': 'c',};//此时返回的是一个空数组let arr2 = Array.from(arrayLike); // []

Array.of() 了解

Array.of()方法用于将【一组数值】转换为数组.

简单的使用:

const a = Array.of(10, 20, 26, 38);console.log(a); // [10, 20, 26, 38]const b = Array.of(1).length;console.log(b);         // 1Array.of()可以用以下的代码模拟实现:function ArrayOf() {  return [].slice.call(arguments);}

Array.includes的使用

Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值。

与字符串的includes方法类似。ES2016 引入了该方法。

简单的使用方法

const arr = [100, 200, 300];console.log(arr.includes('100')) //falseconsole.log(arr.includes(100)) //true

 没有该方法之前,我们使用数组的indexOf方法,检查是否包含某个值。

if (arr.indexOf(el) !== -1) {  // 有这个值}indexOf方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1,表达起来不够直观。二是,它内部使用严格相等运算符(===)进行判断,这会导致对NaN的误判。[NaN].indexOf(NaN) // -1includes使用的是不一样的判断算法,所以没有这个问题。[NaN].includes(NaN)// true

扩展运算符 (...)

扩展运算符是三个点(...),

将一个数组转为用逗号分隔的参数序列。

console.log(...[1, 2, 3])// 1 2 3console.log(1, ...[2, 3, 4], 5)// 1 2 3 4 5[...document.querySelectorAll('div')]// [<div>, <div>, <div>]
let arr1=[11,22,];let  arr2=["aa","bb"];//  es5的合并let arr=arr1.concat(arr2);console.log(arr) // [11, 22, "aa", "bb"]//es6let newarr=[...arr1,...arr2]console.log(newarr) // [11, 22, 33, 55, "aa", "bb", "cc", "dd"]
// 函数内部有一个对象,arguments可以获取到实参,但是一个伪数组//Array[饿 rei]function sun(){  console.log(arguments)   //Arguments(8) [1, 2, 3, 4, 5, 6, 7, 9, callee: ƒ, Symbol(Symbol.iterator): ƒ]  他是一个伪数组}sun(1,2,3,4,5,6,7,9);// 如何将函数内部的伪数组变为真实的数组 方法1function sun(){  let ags=Array.prototype.slice.call(arguments);  ags.push(150);  console.log(ags); //[1, 2, 3, 4, 5, 6, 7, 9, 150]}sun(1,2,3,4,5,6,7,9);// 如何将函数内部的伪数组变为真实的数组 方法2function sun(){  let ags=[...arguments];//将伪数组百年未真实的数组  ags.push(150);  console.log(ags); //[1, 2, 3, 4, 5, 6, 7, 9, 150]}sun(1,2,3,4,5,6,7,9);//  总结扩展运算符是...   [...变为真实数组的对象]

数组的空位

数组的空位指的是,数组的某一个位置没有任何值.

比如Array()构造函数返回的数组都是空位。

let arr = new Array(3)console.log(arr); // [, , ,] 谷歌浏览器中会有出现  [空属性 × 3]

 上面代码中,Array(3)返回一个具有 3 个空位的数组。

forEach(), filter(), reduce(), every() 和some()都会跳过空位。map()会跳过空位,但会保留这个值join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。ps:ES6 则是明确将空位转为undefined。let arr = new Array(3)console.log(arr[0] === undefined); //true

ES5 对空位的处理,已经很不一致了,大多数情况下会忽略空位。 

ps:ES6 则是明确将空位转为undefined。Array.from()方法会将数组的空位,转为undefined,也就是说,这个方法不会忽略空位。Array.from(['a',,'b'])// [ "a", undefined, "b" ]扩展运算符(...)也会将空位转为undefined。[...['a',,'b']]// [ "a", undefined, "b" ]new Array(3).fill('a') // ["a","a","a"]for...of循环也会遍历空位。let arr = [, ,];for (let i of arr) {  console.log(1);}// 1// 1上面代码中,数组arr有两个空位,for...of并没有忽略它们。如果改成map()方法遍历,空位是会跳过的

以上是“ES6中数组新增的方法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: ES6中数组新增的方法有哪些

本文链接: https://lsjlt.com/news/325905.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ES6中数组新增的方法有哪些
    小编给大家分享一下ES6中数组新增的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在ES6之前,创建数组的方式有2种:一: 通过数组字面量let&nbs...
    99+
    2023-06-29
  • es6新增的数组方法有哪些
    这篇文章主要介绍“es6新增的数组方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6新增的数组方法有哪些”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • JavaScript es6的新增数组方法有哪些
    这篇文章主要讲解了“JavaScript es6的新增数组方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript es6的新增数组方法有哪些”吧!1...
    99+
    2023-06-21
  • es6中数组新增常用的方法有哪些
    这篇文章主要介绍“es6中数组新增常用的方法有哪些”,在日常操作中,相信很多人在es6中数组新增常用的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6中数组新增...
    99+
    2024-04-02
  • ES6数组新增方法知识点有哪些
    这篇文章主要介绍“ES6数组新增方法知识点有哪些”,在日常操作中,相信很多人在ES6数组新增方法知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ES6数组新增方法知...
    99+
    2024-04-02
  • ES6新增的数组方法和对象有哪些
    这篇文章主要为大家展示了“ES6新增的数组方法和对象有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES6新增的数组方法和对象有哪些”这篇文章吧。es6新增...
    99+
    2024-04-02
  • es6 number对象的新增方法有哪些
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。在 ES5 中,全局下的 isFinite () 和 isNaN () 两种方法存在类型转换,对最终的判断结果存在歧义。ES6 在 Number 对象上,...
    99+
    2022-11-22
    javascript ES6
  • es6数组方法有哪些
    es6数组方法有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。es6数组方法有:“from()”、“of()”、“copyWithin()...
    99+
    2024-04-02
  • 关于ES6中数组新增的方法详解
    目录在ES6之前,创建数组的方式有2种:Array.find((item,indexArr,arr)=>{}) 掌握Array.findIndex((item, index, ...
    99+
    2024-04-02
  • es6中新增的数组方法怎么使用
    本文小编为大家详细介绍“es6中新增的数组方法怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6中新增的数组方法怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。es6数组方法有:1、Array....
    99+
    2023-07-05
  • es6中迭代数组的方法有哪些
    这篇文章主要介绍了es6中迭代数组的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6中迭代数组的方法有哪些文章都会有所收获,下面我们一起来看看吧。迭代方法:1、map,用于根据某种规则映射数组,得...
    99+
    2023-07-04
  • ES6中字符串string常用的新增方法有哪些
    这篇文章主要为大家展示了“ES6中字符串string常用的新增方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES6中字符串string常用的新增方法有...
    99+
    2024-04-02
  • es6的新增特性有哪些
    这篇文章主要介绍“es6的新增特性有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6的新增特性有哪些”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • es6新增的扩展有哪些
    这篇“es6新增的扩展有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“es6新增的扩展...
    99+
    2024-04-02
  • es6新增循环有哪些
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。以前for循环,for in循环;而ES6新增循环:for of 循环:遍历(迭代,循环)整个对象。for..ofES6新增了一个for..of循环,在迭...
    99+
    2022-11-22
    javascript ES6 循环遍历 循环结构
  • ES6中数组array新增方法的示例分析
    小编给大家分享一下ES6中数组array新增方法的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!●find :let arr=[1,2,234,'sdf'...
    99+
    2024-04-02
  • ES6数组去重的方法有哪些
    这篇文章主要介绍“ES6数组去重的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6数组去重的方法有哪些”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • es6遍历数组的方法有哪些
    ES6中遍历数组的方法有以下几种: for...of循环:通过for...of循环可以依次遍历数组中的每个元素。例如: cons...
    99+
    2023-10-26
    es6
  • es6遍历数组有哪些方法
    这篇文章主要为大家展示了“es6遍历数组有哪些方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“es6遍历数组有哪些方法”这篇文章吧。 ...
    99+
    2024-04-02
  • javascript中有哪些对象新增方法
    这篇文章将为大家详细讲解有关javascript中有哪些对象新增方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript对象的新增方法:1、“Object....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作