js(ES6)预习&复习笔记(四)
剩余参数和扩展对象
1、剩余参数
作用:将一个不定数量的参数表示为一个数组
不定参数定义的方式,能够让我们很方便的去声明不知道参数情况下的一个函数
举例:
function sum (first, ...args) {
console.log(first); // 10
console.log(args); // [2, 3,4,5]
}
sum(1, 2, 3,4,5)
搭配解构使用:
let person = ['liming', 'zhangsan', 'lisi'];
let [p1, ...p2] = person;
console.log(p1); // 'liming'
console.log(p2); // ['zhangsan', 'lisi']
2、内置对象扩展
扩展运算符可将数组或对象转为 用“,”号分隔的参数序列
例:
let ary = [1, 2, 3];
...ary // 1, 2, 3
console.log(...ary);
console.log(1,2,3);
用于合并数组
// 法一
let ary1 = [1, 2, 3];
let ary2 = [3, 4, 5];
let ary3 = [...ary1, ...ary2];
// 法二
ary1.push(...ary2);
将 类数组、可遍历对象 转 为真正的数组
//定义一个集合
let array = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
//转成数组
let array2 = Array.from(array);
//输出 ['a', 'b', 'c']
方法可以接受第二个参数
作用类似于数组map方法,对每个元素进行处理,将处理后的值放入返回的数组
let array1 = {
"0": 1,
"1": 2,
"length": 2
}
let array2 = Array.from(array1, item => item *2) //[2,4]
附:若是对象,属性则需写对应索引