ES6中对数组的扩展

  Array.from()方法用于将两类对象转为真正的数组:类似数组的对象和可遍历对象。

  php有种返回json长成:let arr1={0:‘1‘,1:‘a‘,2:‘c‘};ES6可以直接写成let arr2=Array.from(arr1);//[‘1‘,‘a‘,‘c‘]。ES5可以写成 var arr3=[].slice.call(arr1);感谢ES6吧。

  只要是部署了Iterator接口的数据结构,Array.from都能将其转为数组。Array.from(‘hello‘)//[h,e,l,l,o];如果参数是一个真正的数组,Array.from会返回一个一模一样的新数组。

  Array.from方法还支持类似数组的对象。所谓类似数组的对象,本质特征只有一点,即必须有length属性。因此,任何有length属性的对象,都可以通过Array.from方法转为数组,而这种情况扩展运算符无法转换。

  Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。Array.from([1,2,3),(x)=>x*x)//[1,4,9]

  使用Array.from替换布尔值为false的成员。Array.from([1,,2,,3],(n)=>n||0)//[1,0,2,0,3]

  这可能就可以用来做filter。我说为什么小程序,react没有提供filter这种基础的功能。

  Array.from()可以将各种值转为真正的数组,并且提供map功能。只要有一个原始的数据结构,就可以先对它的值进行处理,然后转成规范的数组结构,进而可以使用数量众多的数组方法。

  Array.from()可以将字符串转为数组,然后返回字符串的长度。因为它能正确处理Unicode字符,可以避免js将大于\uFFF的Unicode字符算作2个字符的bug。

function countSymbols(string){
  return Array.from(string).length ;
}

  Array.of()方法用于将一组值转换为数组。这个方法的主要目的,是弥补数组构造函数Array()的不足。因为参数个数的不同会导致Array的行为有差异。只有当参数个数不少于2个时,Array()才会返回由参数组成的新数组。参数个数只有1个时,实际上是指定数组的长度。

  Array.of基本上可以用来替换Array()或new Array(),并且不存在由于参数不同而导致的重载。它的行为非常统一。

  Array.of总是返回参数值组成的数组。如果没有参数,就返回一个空数组。

  

  数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined;

  find方法的回调函数可以接受3个参数,依次为当前的值、当前的位置和原数组。

  数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有都不符合条件,则返回-1。

  数组实例的fill方法使用给定值填充数组。

  ES6提供了3个新方法-entries()、keys()和values()用来遍历数组。它们都返回一个遍历器对象。可以用for..of循环遍历,keys()是对键名的遍历,values()是对键值的遍历,enteries()是对键值对的遍历。

  Array.proptotype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似。

  数组的空位指数组的某一个位置没有任何值。

  不全。

原文地址:https://www.cnblogs.com/wlxll/p/9269802.html

时间: 2024-11-06 03:43:36

ES6中对数组的扩展的相关文章

ES6中的数组

数组是js中很重要的数据类型,虽然在 ES5 中,关于数组的方法和属性很多.但为了更加简洁.高效的操作数组,ES6 中又在数组原型上和实例上新增了一些方法. 一.Array方法 1.1 Array.from() js中存在很多类似数组的对象,比如说 获取的一组DOM元素,比如说 函数的参数. 它们有着类似数组的属性,比如说键值对,或者 length 属性,但它们并不能使用数组里的方法. 要把一个类似数组的对象转换成一个真正的数组有时候可能很麻烦,就拿 函数的参数 来说,你需要通过如下方式: fu

0512日重点: js中,ES6中 处理数组的几种方法

1.es5zhong的几种处理数组的方法: 参考文档:http://ourjs.com/detail/54a9f2ba5695544119000005 es6中数组去重方法,参考:http://www.cnblogs.com/wangujianchi/p/6436375.html 1) indexOf indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1. 不使用indexOf时 var arr = ['apple','orange','pear'], found =

ES6中对对象的扩展

ES6允许直接写入变量和函数作为对象的属性和方法.这样的书写更加简洁. ES6允许在对象中只写属性名,不写属性值.这时,属性值等于属性名所代表的变量. function f(x , y){ return {x ,y}; } f(1,2)// Object {x:1,y:2} function getPoint(){ var x=1; var y=10; return {x,y}; } getPoint()//{x:1,y:10} js语言定义对象的属性有两种方法.obj.foo=true;obj

ES6小实验-数组的扩展

数组方法已经很多,ES6给数组又增加了不少方法: 1.Array.from():用于将两类对象转为真正的数组,类似数组的对象(array-like object) 和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map) let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length:3 } let arr = Array.from(arrayLike) console.log(arr)//["a", "b&q

ES6新特性-------数组和Math(续)

三.Array Array对象增加了一些新的静态方法,Array原型上也增加了一些新方法. 1.Array.from 从类数组和可遍历对象中创建Array的实例 类数组对象包括:函数中的arguments.由document.getElementsByTagName()返回的nodeList对象.新增加的Map和Set数据结构. //in ES6中 类数组转换为数组的方法 let itemElements=document.querySelectorAll('.item'); let items

ES6-05:数组的扩展

ES6对于JavaScript数组对象的扩展,主要是为了增强数组的创建及元素的操作方法:具体来说即一个运算符.数组创建方法.数组元素操作方法.数组属性操作方法四个方面: 1.增加一个运算符--扩展运算符... 扩展运算符(spread):如同rest参数的逆运算,将一个数组转换成用逗号分隔的序列,扩展运算符内部调用的是数据结构的Interator接口,因此,主要有Iterator接口的对象,,都可以使用扩展运算符:可替代apply方法: console.log(...[1,2,3]);//1 2

ES6对数组的扩展

ECMAScript6对数组进行了扩展,为数组Array构造函数添加了from().of()等静态方法,也为数组实例添加了find().findIndex()等方法.下面一起来看一下这些方法的用法. Array.from() Array.from()将类数组(array-like)对象与可遍历的对象转化为数组并返回.例如将dom节点集合转化为数组,以前我们可能都会这样写: var divs = document.querySelectAll("div"); [].slice.call(

ES6 - Note3:数组、对象与函数的扩展

一.数组的扩展,ES6在数组扩展了一些API,以实现更多的功能 1.Array.from:可以将类数组和可遍历的数据结构转换成真正的数组,如下所示 var a = { '0':1,'1':1,length:2 }; var arr = Array.from(a); console.log(arr) Array [ 1, 1 ] ---------------ES5的实现----------- var arr = [].slice.call(a); console.log(arr) Array [

ES6中数组的新方法

数组的扩展 1.1扩展运算符 1.1.1:... 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. <body> <div></div> <div></div> <div></div> <div></div> </body> <script type="text/javascript"> c