forEach?(js v1.6)
map()— —更新數(shù)組
filter()、includes()、find()、findIndex()— —篩選(刪除)數(shù)組
some()、every()— —判斷數(shù)組
reduce()— —疊加數(shù)組
isNaN() 函數(shù)用于檢查其參數(shù)是否是非數(shù)字值澜搅。
Concat() 連接兩個(gè)或更多數(shù)組
splice(index,len,[item])刪除元素,并向數(shù)組添加一個(gè)新元素邪锌。
Slice() 從某個(gè)已有的數(shù)組返回選定的元素
Join() 把數(shù)組的所有元素放入一個(gè)字符串勉躺,元素通過指定的分隔符進(jìn)行分割
push() 在數(shù)組后添加元素,并返回新的長(zhǎng)度
unshift()在數(shù)組最前添加元素
pop() 刪除數(shù)組最后一個(gè)元素并返回該元素的值
reverse()顛倒數(shù)組中元素的順序
shift() 刪除并返回?cái)?shù)組中第一個(gè)元素
sort() 對(duì)數(shù)組元素進(jìn)行排序
toSource() 返回該對(duì)象的源代碼
toString() 把數(shù)組轉(zhuǎn)換為字符串并返回結(jié)果
toLocaleString() 把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組觅丰,并返回結(jié)果
valueOf() 返回對(duì)象的原始值
forEach方法中的function回調(diào)支持3個(gè)參數(shù)饵溅,第1個(gè)是遍歷的數(shù)組內(nèi)容;第2個(gè)是對(duì)應(yīng)的數(shù)組索引妇萄,第3個(gè)是數(shù)組本身蜕企。
[1,2,3,4].forEach(console.log);
// 結(jié)果:// 1, 0, [1, 2, 3, 4]// 2, 1, [1, 2, 3, 4]// 3, 2, [1, 2, 3, 4]// 4, 3, [1, 2, 3, 4]
小案列:
var sum=0;
[1,2,3,4].forEach(function(item,index,array) {
console.log(array[index] ==item);//truesum+=item;
});
alert(sum);//10
更進(jìn)一步,forEach除了接受一個(gè)必須的回調(diào)函數(shù)參數(shù)冠句,還可以接受一個(gè)可選的上下文參數(shù)(改變回調(diào)函數(shù)里面的this指向)(第2個(gè)參數(shù))轻掩。
array.forEach(callback,[ thisObject])
例子:
var database = {?
?users: ["張含韻", "江一燕", "李小璐"],?
?sendEmail: function (user) {??
? if (this.isValidUser(user)) {??
? ? console.log("你好," + user);? ?
?} else {??
? ? console.log("抱歉懦底,"+ user +"唇牧,你不是本家人");? ? }?
?},?
?isValidUser: function (user) {
? ? return /^張/.test(user);? }
};
// 給每個(gè)人法郵件
database.users.forEach(// database.users中人遍歷
database.sendEmail,// 發(fā)送郵件
database// 使用database代替上面標(biāo)紅的this
);
// 結(jié)果:
// 你好,張含韻
// 抱歉,江一燕丐重,你不是本家人
// 抱歉腔召,李小璐,你不是本家
map()— —更新數(shù)組
var arr = [1,2,3,4,5] ;
var newArr = arr.map(function(item,index){
return item*2 ;????????//操作更新數(shù)組
})
console.log(newArr);??????????????????//打印新數(shù)組
console.log(arr);?????????????????????//打印原數(shù)組扮惦,map()沒有改變?cè)瓟?shù)組
var newArr2 = newArr.map(function(item,index){
return `<li>${item}</li>` ;
??????????????//ES6語(yǔ)法臀蛛,模版字符串,波浪號(hào)鍵崖蜜,變量使用${}
??????//["<li>NaN</li>", "<li>NaN</li>", "<li>NaN</li>", "<li>NaN</li>", "<li>NaN</li>"]
})
console.log(newArr2.join('')); //數(shù)組.join()掺栅,把數(shù)組每一項(xiàng)連接起來,形成字符串string
console.log(newArr);?
arr.filter()
1纳猪、創(chuàng)建新數(shù)組
2、不改變?cè)瓟?shù)組
3桃笙、輸出的是判斷為true的數(shù)組元素形成的新數(shù)組
4氏堤、回調(diào)函數(shù)參數(shù),item(數(shù)組元素)搏明、index(序列)鼠锈、arr(數(shù)組本身)
5、使用return操作輸出星著,會(huì)循環(huán)數(shù)組每一項(xiàng)购笆,并在回調(diào)函數(shù)中操作
var arr = [1,2,3,4,5] ;
var newArr = arr.filter(function(item,index){
return item>2&&item<5 ;???????? //根據(jù)判斷為true來遍歷循環(huán)添加進(jìn)新數(shù)組
})
console.log(newArr);????????????????????????????//打印新數(shù)組
console.log(arr);?????