如無(wú)特殊注釋戏售,本文中所有的
v 表示value涕刚,
i 表示index,
arr 表示array
1.數(shù)組遍歷
---underscore
_.firEach(arr,i)
ES6寫法:
var arr = [7, -1, 9, 7, -7, -10, 1, -2, 6, 3];
/**
* forEach(循環(huán))和map(映射(進(jìn)去幾個(gè),出來(lái)幾個(gè))):
* 1.可以遍歷數(shù)組
* 2.不改變?cè)瓉?lái)的數(shù)組
* 區(qū)別:
* 數(shù)組的forEach方法不可以返回一個(gè)新的數(shù)組卡者,
* 但map方法可以返回一個(gè)新的數(shù)組盆赤,其元素是原數(shù)組的每個(gè)元素運(yùn)算之后的結(jié)果
*/
//b的結(jié)果是undefined
let b = arr.forEach((v,i,array)=>{
return v*=2;
})
//c的結(jié)果是arr的每一個(gè)元素都元素之后返回的結(jié)果
let c = arr.map((v,i,array)=>{
return v*=2;
})
console.log(b,c)
//undefined [14, -2, 18, 14, -14, -20, 2, -4, 12, 6]
2.accumulate a single value from an array(匯總)
underscore
_.reduce()
ES6
arr.reduce((a,b)=>{
console.log(a+b)//開始:把第一項(xiàng)和第二項(xiàng)進(jìn)行運(yùn)算贾富;然后:本上一次的結(jié)果和下一項(xiàng)進(jìn)行運(yùn)算
return a+=b
})
3.判斷一些項(xiàng)或者所有項(xiàng)是否滿足某條件:
some和every(數(shù)組中的一項(xiàng)或者幾項(xiàng)滿足某個(gè)條件,即:結(jié)果返回一個(gè)Boolean值)
var arr = [7, -1, 9, 7, -7, -10, 1, -2, 6, 3];
let a1 = arr.some(i=>{
return i===-10;
})
let a2 = arr.every(i=>{
return i===-10;
})
console.log(a1,a2)//true false
4.數(shù)組去重
underscore
_.uniq(arr)
ES6
var arr = [7, -1, 9, 7, -7, -10, 1, -2, 6, 3];
let arr1 = [...new Set(arr)];
console.log(arr1)//得到的便是去重后的數(shù)組
//所以說(shuō):
//數(shù)組轉(zhuǎn)set結(jié)構(gòu):new Set(arr)
//Set結(jié)構(gòu)轉(zhuǎn)數(shù)組:[...seTarr]
5.在數(shù)組中查找某元素
//arr.find()很智障牺六,返回第一個(gè)你想要查找的值颤枪,不知道有什么卵用,沒有返回undefined淑际,用于判斷數(shù)組中是否存在這個(gè)玩意兒
let b1 = arr.find((i)=>{
return i===3
})
console.log(b1)
//arr.findIndex()返回的是第一個(gè)值為7的元素的下標(biāo)
let b2 = arr.findIndex((i)=>{
return i===7
})
console.log(b2)
6.判斷數(shù)組是否包含某個(gè)元素
ES6
console.log(arr.includes(3))
7.參數(shù)轉(zhuǎn)化為數(shù)組
function silyB(a,s,d,f,g){
console.log([...arguments])
}
silyB(1,2,3,4,5)// [1, 2, 3, 4, 5]
silyB(1,2)//[1,2]
8.過(guò)濾器
arr.filter((i)=>{
return i>=5
})
9.把對(duì)象的屬性名或者屬性值拆分出來(lái)畏纲,形成一個(gè)數(shù)組
ES6
var obj = {
name:"gouZi",
age:12,
hobbies:["a","b","c"],
eat:(a)=>{return Math.pow(100,a)}
}
let cdd = Object.keys(obj);
console.log(cdd)
//["name", "age", "hobbies", "eat"]
let aaaa = Object.keys(obj).map(key => obj[key])
console.log(aaaa)
10.對(duì)象的屬性的個(gè)數(shù)
ES6
Object.keys(obj).length
11.獲取時(shí)間戳
Date().now()