摘要:方法功能創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。。方法功能遍歷,對數(shù)組中的元素依次處理。
Array.map()方法
功能 : 創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。。
參數(shù) : (currentValue,index,arrOrigin)(當(dāng)前元素的值,當(dāng)前元素的索引,當(dāng)前元素的數(shù)組對象)
使用 :
var arr = [1,2,3]; arr.map((currentVaLue,index,arrOrigin)=>{},this)
特別注意:
1.map()不會對空數(shù)組進(jìn)行檢測,所以最好在使用map()之前進(jìn)行檢測是否為數(shù)組 2.map()正常情況下不會改變原始數(shù)組,但是可以通過arrOrigin來修改 3.map()可以有返回值,需要return 4.map()中傳入Math等數(shù)學(xué)元素,返回的數(shù)組中會被處理成想要的樣子.如:xxx.map(Math.sqrt) ===>可以將數(shù)組中的內(nèi)容開平方. 5.map()中傳入Number等轉(zhuǎn)換格式的方法,返回的數(shù)組也會被轉(zhuǎn)換.如:xxx.map(Number) ===>里面的元素都會被轉(zhuǎn)化為數(shù)字類型
舉個好的栗子:
let arrMap1=[1,2,3]; // let arrMap1=""; //用于檢驗 let arrMap2=Array.isArray(arrMap1)?arrMap1:[] let newArrMap=arrMap2.map((item,index,arrOrigin) => { return item*2; }) // console.log(arrMap1)//沒有改變。。。 // console.log(arrMap2)//沒有改變。。。 // console.log(newArrMap)
Array.forEach()方法
功能 : 遍歷,對數(shù)組中的元素依次處理。
參數(shù) : (currentValue,index,arrOrigin)(當(dāng)前元素的值,當(dāng)前元素的索引,當(dāng)前元素的數(shù)組對象)
官方使用
var arr = [1,2,3]; arr.forEach((currentVaLue,index,arr)=>{},this)
特別注意:
1.forEach()不會對空數(shù)組進(jìn)行檢測,所以最好在使用forEach()之前進(jìn)行檢測是否為數(shù)組 2.forEach()正常情況下不會直接改變原始數(shù)組,但是可以通過arrOrigin來修改
舉個好的栗子
let arrForEach1=[1,2,3]; // let arrForEach1=""; //用于檢驗 let arrForEach2=Array.isArray(arrForEach1)?arrForEach1:[] arrForEach2.forEach((item,index,arrOrigin) => { arrOrigin[index]=item*2; }) //寫一個用forEach來累加參數(shù)的累加方法 function Counter(arr){ this.sum=0; this.count=0; } Counter.prototype.add=function(arr){ if (!Array.isArray(arr)){ console.warn("請傳入數(shù)組") return } arr.forEach(function (element){ // console.log(this) this.sum+=element; ++this.count; },this) } let obj=new Counter(); obj.add([1,2,3]) // let ADD=obj.add; //檢驗this // ADD([1,2,3]); // console.log(obj); // console.log(obj.sum); //換一個優(yōu)雅的寫法 class calssCounter{ constructor(){ this.sum=0; this.count=0; } add(arr){ if(!Array.isArray(arr)){ console.warn("請輸入數(shù)組"); return } arr.forEach(function(ele){ this.sum+=ele; ++this.count; },this) } } let objClass = new calssCounter(); objClass.add([1,2,3,4,5]); console.log(objClass.sum)
注:文中部分例子來源于:https://developer.mozilla.org...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/105459.html
摘要:遍歷方法小結(jié)常用的遍歷方法遍歷對數(shù)組的每個元素執(zhí)行一次提供的函數(shù)創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果遍歷大家都熟悉,所以重點講一下與的區(qū)別相同點回調(diào)函數(shù)參數(shù)相同,都自帶三個屬性均不會修改原數(shù)組第二參數(shù)的 遍歷方法小結(jié) 常用的遍歷方法 for 遍歷 forEach(對數(shù)組的每個元素執(zhí)行一次提供的函數(shù)) map(創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個...
摘要:該方法可以將類數(shù)組對象轉(zhuǎn)換為數(shù)組,所謂類數(shù)組對象,就是含和索引屬性的對象返回的數(shù)組長度取決于對象屬性的值,且非索引屬性的值,或索引大于的值都不會被返回到數(shù)組中實錘如下簡潔寫法該方法可以將類數(shù)組對象和可迭代對象轉(zhuǎn)換為數(shù)組類數(shù)組對象上文已提及, Array.prototype.slice.call(obj) 該方法可以將類數(shù)組對象轉(zhuǎn)換為數(shù)組,所謂類數(shù)組對象,就是含 length 和索引屬性...
摘要:源起函數(shù)式編程近幾年非常流行經(jīng)??梢栽诰W(wǎng)上看到別人討論相關(guān)話題我機緣巧合之下在上看到有人提到一個講函數(shù)式編程的視頻看過之后突然茅塞頓開瞬間把之前零碎的關(guān)于函數(shù)式編程的知識一下子都聯(lián)系了起來于是自己希望趁有空把這些知識總結(jié)一下這樣既可以回顧下 源起 函數(shù)式編程近幾年非常流行,經(jīng)??梢栽诰W(wǎng)上看到別人討論相關(guān)話題. 我機緣巧合之下在github上看到有人提到一個講js函數(shù)式編程的視頻,看過之...
摘要:操作方法創(chuàng)建數(shù)組類數(shù)組將類數(shù)組轉(zhuǎn)換真正的數(shù)組修改數(shù)組合并數(shù)組,返回新數(shù)組,原數(shù)組不變數(shù)組轉(zhuǎn)化為字符串以默認(rèn)為逗號拼接為字符串。 Array操作方法 創(chuàng)建數(shù)組 var arr=[] var arr = new Array() var arr1 = [1, 2, 3] var arr2 = [a, b, c] var arrLike = [{ name: 123, age:...
摘要:由于和不會被轉(zhuǎn)換為字符串,所以在內(nèi)部是不同的項,如果他們被轉(zhuǎn)化為字符串,那么都會等于,如果多次調(diào)用并傳入相同的值作為參數(shù)。第二次重復(fù)傳入并不會被添加到集合中,那么的屬性值還是為。的方法和共享了幾個方法。小結(jié)正式將與引入。 se5中的set與map 在est5中開發(fā)者使用對象屬性來模擬。set多用于檢查鍵的存在,map多用于提取數(shù)據(jù)。 { let set = Object.cre...
閱讀 1699·2021-11-12 10:36
閱讀 1615·2021-11-12 10:36
閱讀 3442·2021-11-02 14:46
閱讀 3798·2019-08-30 15:56
閱讀 3534·2019-08-30 15:55
閱讀 1463·2019-08-30 15:44
閱讀 1044·2019-08-30 14:00
閱讀 2735·2019-08-29 18:41