數(shù)組常用方法分享

俗話說(shuō),好記性不如爛筆頭,碼代碼的過(guò)程中經(jīng)常會(huì)用到有關(guān)數(shù)組計(jì)算的方法,本人記性太差,每次使用到相應(yīng)的方法都是大腦一片空白,今天借著早下班這個(gè)空檔羅列一下這些方法的使用過(guò)程。

1. forEach? 遍歷數(shù)組

? ? ? ? let arr = [1,2,3]

? ? ? ? let result = arr.forEach(a => {

? ? ? ? ? ? return a + 1

? ? ? ? })

輸出結(jié)果如下:

? ? ? console.log(result) //undefind? 說(shuō)明forEach只是數(shù)組上的一個(gè)函數(shù)不改變也不會(huì)產(chǎn)生新的數(shù)據(jù)

? ?console.log(arr) //[1,2,3]

2. map 遍歷數(shù)組

let arr =[1,2,3]

let c=arr .map((i,ndx,arr)=>{

? ? console.log(i,ndx,arr)

? ? return i*2

})

console.log(arr)// [1,2,3] 原數(shù)組沒(méi)改變

console.log(c)// [2,4,6]? 新數(shù)組

3. filter 遍歷數(shù)組

let arr =[1,2,3]

let c2=arr.filter((i,ndx,arr)=>{?

? ? return i>=2

})

console.log(arr)// [1,2,3] 原數(shù)組沒(méi)改變

console.log(c2)// [2,3] 篩選出滿足條件的新數(shù)組

4. find 遍歷數(shù)組

let arr =[1,2,3]

let c2=arr.find((i,ndx,arr)=>{?

? ? return i>=2

})

console.log(arr)// [1,2,3] 原數(shù)組沒(méi)改變

console.log(c2)// 2 篩選出滿足條件的數(shù)據(jù)即中斷

以上四種方法都是數(shù)組的遍歷方法 根據(jù)不同使用環(huán)境,可以自行選擇

除了以上方法,這里再加一個(gè)數(shù)組降維的方法(flat),這個(gè)在工作中也是會(huì)經(jīng)常用到

let arr=[1,2,3,[4,5,6],7]

let c=arr.flat();// 可傳參 降維級(jí)別

console.log(arr)// [1,2,3,[4,5,6],7] 不改變?cè)瓟?shù)組

console.log(c)// [1, 2, 3, 4, 5, 6, 7] 降維后新數(shù)組

下面由filter方法衍生幾個(gè)常用的數(shù)組求交集、并集、補(bǔ)集、差集

? ? let arr1 = [1,2,3,4,5],

? ? ? arr2 = [5,6,7,8,9];

// 交集

let intersection = arr1.filter(function (val) { return arr2.indexOf(val) > -1 })

// 并集

let union = arr1.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))

// 補(bǔ)集 兩個(gè)數(shù)組各自沒(méi)有的集合

let complement = arr1.filter(function (val) { return !(arr2.indexOf(val) > -1) })

.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))

// 差集 數(shù)組arr1相對(duì)于arr2所沒(méi)有的

let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 })

console.log('arr1: ', arr1);

console.log('arr2: ', arr2);

console.log('交集', intersection);

console.log('并集', union);

console.log('補(bǔ)集', complement);

console.log('差集', diff);

結(jié)語(yǔ):今天分享的內(nèi)容好像與threejs沒(méi)有直接關(guān)系,但我相信大家(只少我是^^)在碼代碼的過(guò)程中會(huì)經(jīng)常用到這些方法,今天的分享到此結(jié)束謝謝大家的支持。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容