描述: 本篇文章為了記錄日常生活中或者項(xiàng)目中經(jīng)常使用到的JS方法,會(huì)長(zhǎng)期記錄...
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供界首網(wǎng)站建設(shè)、界首做網(wǎng)站、界首網(wǎng)站設(shè)計(jì)、界首網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、界首企業(yè)網(wǎng)站模板建站服務(wù),10多年界首做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
1.map和forEach方法
2.pop和push方法(棧結(jié)構(gòu))
3.shift和unshift方法(隊(duì)列結(jié)構(gòu))
4.concat方法
鏈接多個(gè)數(shù)組,產(chǎn)生新數(shù)組,不影響原數(shù)組(注意:如果數(shù)組不是基礎(chǔ)數(shù)據(jù),含有復(fù)雜類型數(shù)據(jù),該方法為淺拷貝,會(huì)影響原數(shù)組)
/* 基礎(chǔ)數(shù)據(jù) */
const arr = [1,2,3]
const arr1 = [1,2,3].concat(arr1) //[1, 2, 3, 1, 2, 3]
/* 復(fù)雜數(shù)據(jù) */
const arr3 = [1,2,{name:'zz',age:12}]
const arr4 = [1,3,4].concat(arr3) //[1,2,{name:'zz',age:12},1,3,4]
arr4[4].age = 99 // 此時(shí)arr3的數(shù)據(jù)也修改了
5.filter方法
過(guò)濾數(shù)據(jù),傳入一個(gè)回調(diào)函數(shù),方法返回一個(gè)符合回調(diào)函數(shù)條件的新數(shù)組,不會(huì)修改原數(shù)組
const arr = [1,2,4,6,8]
arr.filter((item,index) => item === 2**index) // [1, 2, 4] 此處**為es7新語(yǔ)法 冪運(yùn)算
6.sort和reverse方法
const sortArr = [1,2,3,0,-1,-4]
sortArr.sort((a,b) => {return a-b}) //升序排列 [-4, -1, 0, 1, 2, 3]
sortArr.sort((a,b) => {return b-a}) //降序排列 [3, 2, 1, 0, -1, -4]
7.splice和slice方法
const arr = [1,2,3,4]
arr.splice(0,1,'string') // 返回 1 arr變?yōu)?['string',2,3,4]
arr.splice(1,0,'string2') // 返回[] arr變?yōu)閇'string','string2',3,4]
const arr = [1,2,3,4,5]
arr.slice(0,3) // 返回[1,2,3] arr未改變
8.join方法
將數(shù)組中的項(xiàng)通過(guò)指定方式生成一個(gè)字符串,不改變?cè)瓟?shù)組,生成新的字符串
9.reduce方法
reduce(callback(),[initialValue]) 該方法第一個(gè)參數(shù)是回調(diào)函數(shù),函數(shù)有四個(gè)參數(shù)、preValue - 前一個(gè)數(shù)據(jù)或者初始值,curValue - 當(dāng)前數(shù)據(jù),index - 當(dāng)前數(shù)據(jù)坐標(biāo),arr - 當(dāng)前操作的數(shù)組。高級(jí)用法:數(shù)組去重、計(jì)算元素出現(xiàn)的次數(shù)、將多維數(shù)組扁平化、數(shù)組對(duì)象歸類
// 1.數(shù)組去重
const arr = [1,2,4,2,5,22,77,33,4,2,1]
const a = arr.reduce((pre,cur,index) => {
return pre.includes(cur)?pre:[...pre,cur]
},[])
// 2.數(shù)組對(duì)象中屬性值相同的項(xiàng)歸類在一起
const arr4 = [
{
county:'1-1',
child:[{name:'張三',age:12},{name:'李斯',age:12}]
},
{
county:'1-2',
child:[{name:'張三',age:12},{name:'李斯',age:12}]
},
{
county:'1-1',
child:[{name:'王五',age:33},{name:'麻子',age:21}]
}
]
const arr5 = arr4.reduce((pre,cur,item)=>{
if(!pre[cur.county]){
pre[cur.county] = []
}
for(let i = 0;i