ES6数组得扩展与对象的扩展
1.forEach
- 格式:
2.map方法
map 映射含義,用法與forEach基本類似
可以在函數(shù)中定義返回值,返回是一個(gè)數(shù)組。
3.Array.from()
Array.from 方法可以將類似數(shù)組得對(duì)象轉(zhuǎn)為真正的數(shù)組,比如:Dom獲取的偽數(shù)組,arguments對(duì)象。
let lis = document.querySelectorAll("li");console.log(lis);var arr = Array.from(lis);console.log(arr);function sort(){var args = Array.from(arguments);return args.sort();}console.log(sort(6,3,5)); let likeArr = {length:3,"0":"hello","1":"word","2":"你好"}let arr = Array.from(likeArr);console.log(arr);4.Array.of()
Array.of()方法將一組指,轉(zhuǎn)為數(shù)組。
let arr = Array.of(1,2,3);console.log(arr);let arr2 = new Array(3);console.log(arr2);5.copywithin()
將指定位置的內(nèi)容復(fù)制到其他位置(復(fù)制會(huì)覆蓋原有的內(nèi)容)然后返回當(dāng)前數(shù)組。
- 格式
6.find()和findindex()
find 方法,找到第一個(gè)符合條件的數(shù)組元素。
arr.find(function(item,indedx,arr){//條件判斷}) var arr = [1,6,-10,-9].find(function(item){return item < 0;})// ES6箭頭函數(shù)寫法var arr = [1,6,-10,-9].find(item=>item < 0)console.log(arr);findindex,找到第一個(gè)符合條件的數(shù)組元素的下標(biāo)。
var arr = [1,6,-10,-9].findIndex(item=>item < 0)console.log(arr);7.keys(),values(),entries()
這三個(gè)方法主要用于數(shù)組遍歷。配合for…of循環(huán)。
keys():對(duì)鍵名的遍歷
valies():對(duì)鍵值得遍歷
entries()對(duì)鍵值對(duì)進(jìn)行遍歷
8.for…of循環(huán)
//格式//item 指遍歷的當(dāng)前元素//arr 指遍歷數(shù)組for(const item of arr){console.log(item);}var arr = ["a","b"]for(const item of arr){console.log(item)} var arr = ["a","b"]for (const item of arr.keys()){console.log(item);}// 0 1 for(const item of arr.values()){console。log(item);}//[0,"a"][1,"b"]9.includes()
該方法可以判斷數(shù)組是否包含指定的值。
格式:
9.1includes方法與indexOf()方法的區(qū)別
01.indexOf 返回的是下標(biāo)。includes返回的是布爾值
02.indexOf用來判斷是否包含不夠語義化,不夠直觀
03.對(duì)于NaN是有誤判的
10.對(duì)象擴(kuò)展方法
10.1Object.Assign()
assgin()用于對(duì)對(duì)象的合并
格式:
10.2淺拷貝
只拷貝復(fù)合數(shù)據(jù)的內(nèi)存地址,拷貝后的變量讓然指向原本的對(duì)象
10.3深拷貝
生成新的對(duì)象,新對(duì)象和就對(duì)象的值完全相同,然后新對(duì)象的地址復(fù)制。
assign方法時(shí)淺拷貝,也就是說,如果被合并的對(duì)象中有一個(gè)屬性為對(duì)象,那么target對(duì)象拷貝得到的是這個(gè)對(duì)象的內(nèi)存地址。
10.4同名屬性
const obj1 = {name:"奧黛麗",age:"20",son:{name:"盧卡·多蒂",age:"40"} } const obj2 = {name:"赫本" } const target = {name:"奧黛麗·赫本",sex:"女" }; Object.assign(target,obj1,obj2); console.log(target);遇到同名屬性,則后面的參數(shù)對(duì)象中的屬性會(huì)將前面的屬性覆蓋
10.5用在數(shù)組上
用在數(shù)組上時(shí),會(huì)將數(shù)組視為對(duì)象
var arr1 = [10,20,30];// arr1 = {// "0":"a",// "1":"b",// "2":30// }var arr2 = ["a","b"];// arr2 = {// "0":"a",// "1":"b"// }Object.assign(arr1,arr2);console.log(arr1);//a,b,3011. 集合
11.1 什么是集合
1.無序
2.不重復(fù)
11.2 set
ES6的新的數(shù)據(jù)結(jié)構(gòu),類似于數(shù)組,但是元素是唯一的,而且沒有順序
- 創(chuàng)建set
- 添加元素的兩種方式
11.3屬性和方法
- size屬性
返回該set集合中的元素個(gè)數(shù)
set.size();-
add(value)
往set集合中添加一個(gè)元素,返回Set本身。 -
delete(value)
刪除指定的值,返回一個(gè)布爾值,表示刪除是否成功。 -
has(value)
判斷指定的值是否在set中存在,返回一個(gè)布爾值。 -
clear()
清除所有元素,沒有返回值。
11.4 補(bǔ)充
set轉(zhuǎn)為數(shù)組得方法
Array.from 方法可以將set轉(zhuǎn)為數(shù)組。
const arr = Array.from(s);rest參數(shù)
const arr2 = [...s];- 給數(shù)組去重
11.5 遍歷操作
- keys()
返回鍵遍歷器 - values()
返回鍵的值得遍歷器 - entries()
返回鍵值對(duì)的遍歷器
12. map
是鍵值對(duì)的集合,與對(duì)象中的屬性與屬性很類似,但是對(duì)象中的屬性名只能是字符串,值–值的對(duì)應(yīng),字符串–值的對(duì)應(yīng)
- 創(chuàng)建map
- 添加元素的方式
- 唯一性
鍵的唯一性,而不是值的唯一。
12.1 屬性方法
-
size
返回map中有多少鍵值對(duì) -
set(key,value)
往map集合中添加一個(gè)key - value的鍵值對(duì),返回map本身,如果key存在,原值會(huì)被覆蓋。 -
delete(key)
通過鍵查找對(duì)應(yīng)的鍵值對(duì),將其刪除,返回一個(gè)布爾值,表示刪除是否成功。 -
has(key)
判斷指定的鍵是否在map中存在,返回一個(gè)布爾值 -
clear()
清楚所有元素沒有返回值 -
get(key)
讀取key對(duì)應(yīng)的鍵值,如果找不到,返回undefined
13 遍歷操作
- keys()
返回鍵名遍歷器 - values()
返回鍵的值的遍歷器 - entries()
返回鍵值對(duì)的遍歷器
14 對(duì)象的擴(kuò)展
14.1對(duì)象屬性的簡(jiǎn)潔表示法
ES6可以在對(duì)象的大括號(hào)中,直接寫入變量 和函數(shù),作為對(duì)象的屬性和方法。如果屬性名與變量名相同,則可以簡(jiǎn)寫,只寫屬性名即可。
var name = "赫本"var obj = {name}//相當(dāng)于var obj = {name:name} function fn(a,b){return {a,b};}var obj = fn("hello","word");console.log(obj);14.2方法簡(jiǎn)寫
在對(duì)象中,可以對(duì)方法進(jìn)行簡(jiǎn)寫
let obj = {fn(){console.log("今晚九點(diǎn),海島集合。");}}//相等于let obj = {fn:function(){console.log("今晚九點(diǎn),海島集合。");}}簡(jiǎn)寫只適用于普通方法,構(gòu)造函數(shù)不能簡(jiǎn)寫
14.3屬性名表達(dá)式
拆分的功能,如果是對(duì)象,則將對(duì)象中的所有屬性遍歷出來,如果是數(shù)組,則將所有元素遍歷出來
let a = {x:1,y:2}let b = {...a}console.log(b);let arr = [10,20,30];let c = {...arr}console.log(c["0"]);總結(jié)
以上是生活随笔為你收集整理的ES6数组得扩展与对象的扩展的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: No service of type F
- 下一篇: echart视觉引导线的长度调节labe