欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue中的扩展运算符 ...

程序员文章站 2022-03-29 17:52:16
...

Vue中的扩展运算符 …
含义:扩展运算符( spread )是三个点(…)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

1.操作数组:

methods: {
/**
* 把数组中的元素孤立起来
*/
iClick() {
	let iArray = ['1', '2', '3'];
	console.log(...iArray);
	// 打印结果  1 2 3
},

2.在数组中添加元素

iClick3() {
	let iArray = ['1', '2', '3'];
	console.log(['0', ...iArray, '4']);
	// 打印结果  ["0", "1", "2", "3", "4"]
}

3.在数组中删除元素(取出一个元素) 与结构赋值的结合 如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。

iClick8() {
	const [first, ...rest] = [1, 2, 3, 4, 5];
	console.log(first);
	// 打印结果 1
	console.log([...rest]);
	// 打印结果 [2, 3, 4, 5]
	
	const [one, ...last] = ["foo"];
	console.log(one);
	//打印结果 foo
	console.log([...last]);
	//打印结果 []
}

4.数组的合并

iClick6() {
	// ES6 的写法
	var arr1 = [0, 1, 2];
	var arr2 = [3, 4, 5];
	arr1.push(...arr2);
	console.log(arr1);
	//  打印结果 [0, 1, 2, 3, 4, 5]
},

5.数组的合并(推荐使用)

iClick7() {
	var arr1 = [0, 1, 2];
	var arr2 = [3, 4, 5];
	console.log([...arr1, ...arr2]);
	//  打印结果 [0, 1, 2, 3, 4, 5]
},

6.将字符串转成数组

iClick9() {
	let iString = 'woshizhongguoren';
	console.log([...iString]);
	//  打印结果 ["w", "o", "s", "h", "i", "z", "h", "o", "n", "g", "g", "u", "o", "r", "e", "n"]
},

7.Map 和 Set 结构, Generator 函数

iClick10() {
	let map = new Map([
	[1, 'one'],
	[2, 'two'],
	[3, 'three'],
	]);
	let arr = [...map.keys()];
	console.log(arr);
	//  打印结果 [1, 2, 3]
}

8.当做参数传递, 和直接传数组的区别

iClick4() {
	let iArray = ['1', '2', '3'];
	//注意传的时候,就要三个点
	this.hanshu(...iArray);
},
hanshu(...iArray) {
	let ooo = 1;
	console.log(...iArray);
	//  打印结果 1 2 3
}

9.求出最大值

iClick5() {
	let iArray = [1, 2, 3, 99, 44, 66, 21, 85, 77];
	let ooo = Math.max(...iArray);
	console.log(ooo);
	//  打印结果 99
}

10.如果对没有iterator接口的对象,使用扩展运算符,将会报错。

iClick11() {
	let obj = {
		name: 'zhh',
		age: '20'
	}
	console.log([...obj]);
	}
}

11.操作对象:

methods: {
	/**
	* 添加一个属性
	*/
	method3() {
		let a = {age: 18, id: 10};
		// 把 name 属性,放到对象中
		let c = {name: 'zhh', ...a};
		console.log(c);
		//  打印结果  {name: "zhh", age: 18, id: 10}
	}
},

12.修改一个属性

method2() {
	let a = {name: 'zhh', age: 18, id: 10};
	//先拿到a, 后面的name:zhh1,把 a 中name 的值替换掉了
	let c = {...a, name: 'zhh1'};
	console.log(c);
	// 打印结果  {name: "zhh1", age: 18, id: 10}
}

13.删除一个属性(拿出属性或者对象)

method1() {
	let a = {name: 'zhh', age: 18, id: 10};
	let {name, ...c} = a;
	console.log(name, c);
	//  打印结果 zhh {age: 18, id: 10}
}