当前位置 : 主页 > 网络编程 > PHP >

ES6数组的扩展

来源:互联网 收集:自由互联 发布时间:2023-09-07
在ES6中,给数组添加很多新API,方便我们更简单操作数组。 扩展运算符 在实际的写法中,用三个点来表示,将数组转化为用逗号分隔的参数序列,也就是说扩展运算符可以展开数组。


在ES6中,给数组添加很多新API,方便我们更简单操作数组。

 

扩展运算符

在实际的写法中,用三个点来表示,将数组转化为用逗号分隔的参数序列,也就是说扩展运算符可以展开数组。

const arr = [5, 92, 65, 2];
console.log(...arr);// 5,92,65,2

这个扩展运算符在给函数传参时比较常见,可以一次性将整个数组作为参数传给函数。

 

在ES6之前,我们时通过使用apply方法来,将数组转化为函数参数的。

function test(x, y, z) {
console.log("x===", x);
console.log("y===", y);
console.log("z===", z);
}

test.apply(null, arr);
console.log("================================")

test(...arr);

除此之外,扩展运算符还可以合并数组、解构赋值等!

 

Array.from()

这个方法是将两种对象转化为真正的数组:

1、类似数组的对象;

2、可遍历的对象;

const str = {
"0": "duxin",
"1": 18,
length: 2
}
// ES5的写法
console.log([].slice.call(str));
//ES6的写法
console.log(Array.from(str));

/**
* Array.of()
* 将一组数字转化为数组
*
* 跟定义数组的Array()或者new Array()相似,但是使用Array()来构造数组的时候,存在着一些不足,Array()入参的个数不同时,Array()执行中会存在一些差异
*/


console.log("------------Array.of()------------")

const arr1 = Array();
console.log(arr1); // []

const arr2 = Array(5);
console.log(arr2); //[<5 empty items>]

const arr3 = Array(1, 2, 3, 4, 5, 6, 7, 90);
console.log(arr3); // [ 1, 2, 3, 4, 5, 6, 7, 90 ]


const arr4 = Array.of(1);
console.log(arr4); // [1]


/**
* find()、findIndex()
* 查找数组中第一个符合条件的数组成员
*
* find(),返回符合条件的第一个数组成员
*
* findIndex(),返回符合条件的第一个数组成员的位置,也就是下标
*/

const findArr = [2, 3, 5, 6, 7, 8, 9, 10];
const targetArr = findArr.find((item) => {
return item % 2 == 0
});
const targetArr1 = findArr.findIndex((item) => {
return item % 2 == 0
});
console.log("===============find和findIndex===========");
console.log(targetArr); // 2
console.log(targetArr1);//0



/**
* includes(),返回一个布尔值,表示数组是否包含了目标数值
*/


const includeArr = [32, 43, 1, 34, 100];
console.log(includeArr.includes(2)); // false
console.log(includeArr.includes(100)); // true


/**
* 数组的空位指的是数组某一个位置没有任何的值,但是空位并不等于undefined,一个位置的值等于undefined,因为undefined也是一个数值。
*/

console.log(Array(5));// 构造出来的数组的每一个位置都是没有任何值



/**
* forEach()、filter()、every()、some()会跳过空位
*
* map()页也会跳过空位,但是保留这个值
*
* join()、toString()会把空位当做是undefined,undefined和null会被处理为空的字符串
*
*
* 在ES6中会把数组的空位转为undefined,如常用的扩展运算符(...),就是将数组的空位转为undefined
*
* entries()、keys()、values()、findIndex()、find()也会自动将数组的空位转为undefined
*/

const emptyArr = [1, , 23];
console.log(...emptyArr); // 1 undefined 23

 

【感谢龙石数据资产管理和维护 http://www.longshidata.com/pages/government.html】
网友评论