ES6(五)

9. 对象&数组

①. 对象的函数解构

在前后端分离时,后端经常返回来JSON格式的数据,前端的美好愿望是直接把这个JSON格式数据当作参数,传递到函数内部进行处理。ES6就为我们提供了这样的解构赋值。

let json = {
    a:'q',
    b:'qq'
}
function fun({a,b='qw'}){
    console.log(a,b);
}
fun(json);//q qq

是不是感觉方便了很多,再也不用一个个传递参数了。

②.数组的函数解构

函数能解构JSON,那解构我们的数组就更不在话下了,我们看下边的代码。我们声明一个数组,然后写一个方法,最后用…进行解构赋值。

let arr = ['q','qq','qwe'];
function fun(a,b,c){
    console.log(a,b,c);
}
fun(...arr);

这种方法其实在前面ti过了。

③in的用法

in是用来判断对象或者数组中是否存在某个值的。我们先来看一下用in如何判断对象里是否有某个值。

  • 对象判断
let obj={
    a:'qwq',
    b:'as'
}
console.log('a' in obj);  //true
  • 数组判断
    先来看一下ES5判断的弊端,以前会使用length属性进行判断,为0表示没有数组元素。但是这并不准确,或者说真实开发中有弊端。

let arr=[,,,,,]; console.log(arr.length); //5

上边的代码输出了5,但是数组中其实全是空值,这就是一个坑啊。那用ES6的in就可以解决这个问题。

let arr=[,,,,,];
console.log(0 in arr); //false

let arr1 = ['q','qq','qwe'];
console.log(0 in arr1);  // true

ps:这里的0指的是数组下标位置是否为空。

④数组的遍历方法

(1) forEach

let arr = ['q','qq','qwe'];
arr.forEach((val,index)=>console.log(index,val));

forEach循环的特点是会自动省略为空的数组元素,相当于直接给我们筛空了。当是有时候也会给我们帮倒忙。

(2) filter

let arr = ['q','qq','qwe'];
arr.filter(x=>console.log(x));

(3) some

let arr = ['q','qq','qwe'];
arr.some(x=>console.log(x));

(4)map

let arr = ['q','qq','qwe'];
console.log(arr.map(x=>'web'));

map在这里起到一个替换的作用。

⑤数组转换字符串

在开发中我们经常会碰到把数组输出成字符串的形式,注意两种方法的区别。

join()方法

let arr = ['q','qq','qwe'];
console.log(arr.join('|'));// q|qq|qwe

join()方法就是在数组元素中间,加了一些间隔,开发中很有用处。

toString()方法

let arr = ['q','qq','qwe'];
console.log(arr.toString());///q,qq,qwe

转换时只是是用逗号隔开了。

posted @ 2021-01-20 15:45  Sunlightqwq  阅读(72)  评论(0)    收藏  举报