ES6 数组

ES6数组

一、扩展运算符

扩展运算符也就是三个点(...)。
我们之前也说过rest 参数也是用三个点表示。再来回顾下,rest 参数,用在函数的参数上,获取函数的多余参数,获取的值是一个数组 )。
扩展运算符、它好比 rest 参数的逆运算,将一个数组转化为用空格分隔的参数序列,它就好比Array的join方法。
举个例子:
var a=[1,2,3];    
...a;
 运算结果是   1 2 3,它等同于  a.join(' '); 

2、扩展运算符后面还可以放置表达式
console.log(...(a.lengt>3?a: [1,2,3]));

 3、扩展运算符还可以将字符串转为真正的数组  
  [...'tom']   运算结果  ['a','b','c']

【使用技巧】:题目:数组的合并  数组a 和b 合并为一个数组?
方法1、concat()方法     
方法2、for循环 一个一个push
方法3、函数的apply方法
var a = [0, 1, 2];
var b = [3, 4, 5];
a.push.apply(a,b);

方法4、Array原型的apply方法
Array.prototype.push.apply(arr1, arr2);

方法5、arr1.push(...arr2);
   替代函数的 apply 方法


二、Array.from方法用于将两类对象转为真正的数组
1、类似数组的对象           arguments    arguments可以获取函数参数,他是一个类数组对象。  
      Array.from(arguments)    返回一个数组

2、可遍历(iterable)的对象    如Set 和 Map  也可以转换为数组    
 let namesSet = new Set(['1', '2'])
Array.from(namesSet)        ['1', '2']

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

三、Array.of方法用于将一组值,转换为数组
Array.of(3, 11, 8) // [3,11,8]     可以把参数拼接成一个数组


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

find方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组
[1, 2, 3, 4].find(function(value, index, arr) {
  return value > 2;
}) 
//返回结果3

数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1
[1, 2, 3, 4].findIndex(function(value, index, arr) {
  return value > 2;
}) 
//返回结果2

五、数组实例的 entries(),keys() 和 values()
entries(),keys()和values()——用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,
唯一的区别是keys()是对键名的遍历、
values()是对键值的遍历,
entries()是对键值对的遍历。

这一点很想java中map的遍历方式
for (let [index, elem] of ['a', 'b'].entries()) {
  console.log(index, elem);
}


六、数组实例的 includes()方法
方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似
[1, 2, 3].includes(2)     // 返回结果 true

之前我们经常使用数组的indexOf方法,检查是否包含某个值。现在还是可以继续使用的。


 

你可能感兴趣的:(前端,ES6)