除了forEach,其他用返回值return
array.forEach
定義:指定函數(shù)遍歷數(shù)組
- 官方:按順序為每個數(shù)組中的每個元素調(diào)用一次函數(shù)
- 理解:使用指定函數(shù)遍歷數(shù)組
語法:
array.forEach(function(item, index, arr), this)
- array:數(shù)組
- for:為了药有。毅戈。。愤惰。誰
- Each:每一個元素
- function: 第一個參數(shù)是一個函數(shù)苇经,必須.
在調(diào)用函數(shù)時,可以傳入以下三個參數(shù):
- ltem:表示數(shù)組中的一個元素宦言,必須
- index:數(shù)組索引扇单,可選
- arr: 當(dāng)前數(shù)組,可選
- this: 指代詞,修改函數(shù)內(nèi)的this指向(調(diào)用誰它指任的就是調(diào)用的)
默認(rèn)this沒有指向返回Window(全局)
默認(rèn)值undefined奠旺,可選蜘澜。
返回值:forEach返回undefined
this示例1:
function fn(){
console.log(this)
}
// fn()//默認(rèn)沒有指向this返回Window(全局)
this示例2:
var arr = []
arr.fn = function(){
console.log(this)
}
// arr.fn()//Array []數(shù)組調(diào)用了數(shù)組
this示例3:
String.b1= function(){
console.log(this)
}
String.b1()
//function String()
forEach示例1:
var str =[1,2,3]
arr.forEach(function(item,index,arr){
console.log(1,0,[1,2,3])
// console.log(2,1,[1,2,3])
// console.log(3,2,[1,2,3])
})
打印結(jié)果
console.log(str) 1,2响疚,3
forEach示例2**輸出[4,5,6]
arr.forEach(function(item,index){
arr[index] = item + 3
});
console.log(arr) // [4,5,6]
forEach輸出數(shù)組元素之和示例3
let sum = 0;
const arr = [1, 2, 3];
arr.forEach(function(item){
sum += item
});
打印結(jié)果
console.log(sum) //10
array.map()
定義:使用指定函數(shù)遍歷數(shù)組鄙信。
即逐一對傳入到函數(shù)體的每個數(shù)組元素進(jìn)行操作,然后把每一個數(shù)組元素填充進(jìn)新數(shù)組
語法:
array.map(function(item, index, arr), this)
- function: 遍歷數(shù)組的函數(shù)忿晕。必須装诡。
- item: 接收數(shù)組元素的形參,必須。
- index: 接收數(shù)組索引的形參慎王,可選蚓土。
- arr: 接收當(dāng)前數(shù)組的形參,可選赖淤。
- this: 修改函數(shù)內(nèi)的this指向蜀漆,默認(rèn)值undefined,可選咱旱。
返回值:返回操作后的新數(shù)組
示例map輸出[4,5,6]:
const arr = [1, 2, 3];
let arrNew = [ ]
arrNew = arr.map(function(item,index){ //map()方法自動返回一個新數(shù)組
return item + 3 // 設(shè)置function函數(shù)的返回值确丢,返給map()方法
});
console.log(arrNew) // [4,5,6]
array.filter()
定義:指定函數(shù)遍歷數(shù)組。
即逐一對傳入到函數(shù)體的每個數(shù)組元素進(jìn)行條件檢測吐限,把符合條件的數(shù)組元素填充進(jìn)新數(shù)組鲜侥,跳過不符合條件的數(shù)組元素。(條件由開發(fā)者設(shè)計)
語法:
array.filter(function(item, index, arr), this)
返回值:返回符合條件的新的數(shù)組
示例1打印大于3:
const arr = [1, 2, 3, 4, 5, 6];
let arrNew = []
arrNew = arr.filter(function (item) { //filter()方法自動返回符合條件的數(shù)組元素
return item > 3 // 設(shè)置function函數(shù)的返回值诸典,返給filter()方法
});
console.log(arrNew) // [4,5,6]
array.every()
定義:對數(shù)組進(jìn)行檢查元素.
即逐一對傳入到函數(shù)體的每個數(shù)組元素進(jìn)行條件檢測描函,符合條件就返回一個true,不符合條件就返回false。(條件由開發(fā)者設(shè)計)
語法:
array.every(function(item, index, arr), this)
- every單詞:每個狐粱,每次舀寓,每一
- function: 遍歷數(shù)組的函數(shù)。必須肌蜻。
- item: 接收數(shù)組元素的形參互墓,必須。
- index: 接收數(shù)組索引的形參蒋搜,可選篡撵。
- arr: 接收當(dāng)前數(shù)組的形參,可選豆挽。
- this: 修改函數(shù)內(nèi)的this指向育谬,默認(rèn)值undefined,可選帮哈。
返回:
- true: 當(dāng)傳入的數(shù)組元素全部返回true時斑司,返回true。
- false: 當(dāng)傳入的數(shù)組元素有一個返回false但汞,則返回false。
示例:
var arr1 = [1, 2, 3]
var arr2 = arr1.every(function (item, index, arr) {
return item > 0
})
console.log(arr2)
//item> return
//true
array.some()
定義:指定函數(shù)遍歷數(shù)組互站。
即逐一對傳入到函數(shù)體的數(shù)組元素進(jìn)行條件檢測私蕾,符合條件就返回一個true并停止檢測,不符合條件就返回false。(條件由開發(fā)者設(shè)計)
語法:
array.some(function(item, index, arr), this)
- some:有一些(的意思)
- function: 遍歷數(shù)組的函數(shù)胡桃。必須踩叭。
- item: 接收數(shù)組元素的形參,必須。
- index: 接收數(shù)組索引的形參容贝,可選自脯。
- arr: 接收當(dāng)前數(shù)組的形參,可選斤富。
- this: 修改函數(shù)內(nèi)的this指向膏潮,默認(rèn)值undefined,可選满力。
返回值:
- true: 當(dāng)傳入的數(shù)組元素有一個返回true時焕参,返回true。
- false: 當(dāng)傳入的數(shù)組元素全部返回false油额,則返回false叠纷。
示例:
var arr = [1,2,3]
var result = arr.some(function(item){
return item > 2
})
console.log(result) // true
array.find()
定義:指函數(shù)遍歷數(shù)組。
即逐一對傳入到函數(shù)體的數(shù)組元素進(jìn)行條件查找潦嘶,找到符合條件的數(shù)組元素則返回true,然后返回該元素涩嚣。(條件由開發(fā)者設(shè)計)
語法:
array.find(function(item, index, arr), this)
- find:找到發(fā)現(xiàn)
- function: 遍歷數(shù)組的函數(shù)。必須掂僵。
- item: 接收數(shù)組元素的形參航厚,必須。
- index: 接收數(shù)組索引的形參看峻,可選阶淘。
- arr: 接收當(dāng)前數(shù)組的形參,可選互妓。
- this: 修改函數(shù)內(nèi)的this指向溪窒,默認(rèn)值undefined,可選冯勉。
返回值:返回找到的元素澈蚌。
示例:
var result = arr.find(function(item){
return item == 2
})
console.log(result) // 2
array.findIndex()
定義:指定函數(shù)遍歷數(shù)組。
即逐一對傳入到函數(shù)體的數(shù)組元素進(jìn)行條件查找灼狰,找到符合條件的數(shù)組元素則返回true,然后返回該元素的索引宛瞄。(條件由開發(fā)者設(shè)計)
語法:
array.findIndex(function(item, index, arr), this)
- findIndex查找索引
- function: 遍歷數(shù)組的函數(shù)。必須交胚。
- item: 接收數(shù)組元素的形參份汗,必須。
- index: 接收數(shù)組索引的形參蝴簇,可選杯活。
- arr: 接收當(dāng)前數(shù)組的形參,可選熬词。
- this: 修改函數(shù)內(nèi)的this指向旁钧,默認(rèn)值undefined吸重,可選
返回值:返回找到元素的索引。
示例:
var arr = [1,2,3]
var result = arr.findIndex(function(item){
return item == 2
})
console.log(result) // 1
array.reduce()
定義:為數(shù)組的每個值(從左到右)執(zhí)行提供的函數(shù)歪今。
該方法將數(shù)組縮減為單個值嚎幸。
語法:
array.reduce(function(total(sum), item, index, arr), initialValue)
- reduce:減少數(shù)組元素,
- sum(求和):用于存儲數(shù)組元素之和的變量
- total: 用于求和的變量寄猩。
- item: 接收數(shù)組元素的形參嫉晶,必須。
- index: 接收數(shù)組索引的形參焦影,可選车遂。
- arr: 接收當(dāng)前數(shù)組的形參,可選斯辰。
- initialValue: 初始值舶担。
****示例:
var result = arr.reduce(function (total, item) {
return total += item
}, 0)
console.log(result) // 6