扩展运算符

例1

1
2
3
4
var str = '1234';
var arr5 = [...str];
arr5; //["1", "2", "3", "4"]

例:

需要实现,搜索歌手,歌手名字需要在最上一排

正常的返回格式如下:

搜索歌曲

搜索歌手

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
data(){
return{
result : []
}
},
methods:{
some(){
//搜索接口
this.result = this.format(data);
},
format(data){
let ret = [];
if(data.zhida && data.zhida.singerid){
//确定包含歌手
ret.push({
...data.zhida, //传入歌手信息
//??如何进行判断是歌手还是歌曲进行图标替换??
//改写字段的type
...{type:'singer'}
})
}
if(data.song){
ret = ret.concat(data.song.list)
}
},
//这里就可以更改icon了
getIcon(item){
if(item.type === 'singer'){
return 'icon-mine';
}else{
return 'icon-music';
}
}
//<i class="icon" :class="getIcon(item)"></i>
}

更改后的字段:

PS:引用扩展运算符:

ES6 的 合并

1
2
3
4
5
6
7
8
9
10
1:
var arr1 = ['a']
var arr2 = ['b','c']
var arr3 = ['d']
[...arr1,...arr2,...arr3] //["a", "b", "c", "d"]
2:
var a = {a:1,type:2}
var b = {...a,...{type:'1111'}}
b; //{a: 1, type: "1111"} //覆盖合并了