Vue中常用的數(shù)組方法
.filter()绅喉、.map()模狭、.forEach()颈抚、.find()、.findIndex()嚼鹉、.some()贩汉、.every()、.fill()
filter
filter() 方法創(chuàng)建一個新的數(shù)組锚赤,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素匹舞。
是否改變原數(shù)組:否
是否對空數(shù)組進行檢測:否
示例:
const arr= [32, 33, 16, 40];
const arr1 = arr.filter(item => item >= 18)
console.log(arr)? //輸出: [32, 33, 16, 40]
console.log(arr1)? // 輸出:[32, 33, 40]
map
map() 方法返回一個新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值线脚。
map() 方法按照原始數(shù)組元素順序依次處理元素赐稽。
是否改變原數(shù)組:否
是否對空數(shù)組進行檢測:否
語法:
const arr= [4, 9, 16, 25];
const arr1 = arr.map(item => item+2)
console.log(arr)? // 輸出:[4, 9, 16, 25]
console.log(arr1)? //輸出: [6, 11, 18, 27]
forEach
forEach() 方法用于調(diào)用數(shù)組的每個元素,并將元素傳遞給回調(diào)函數(shù)浑侥。
注意: forEach() 對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的姊舵。
tips: forEach()中不支持使用break(報錯)和return(不能結(jié)束循環(huán)),有需要時可使用常規(guī)的for循環(huán)寓落。
語法:
const arr= [4, 9, 16, 25];
const arr1 = [];
arr.forEach(item => arr1.push(item))
console.log(arr)? // 輸出:[4, 9, 16, 25]
console.log(arr1)? // 輸出:[4, 9, 16, 25]
find
find() 方法返回通過測試(函數(shù)內(nèi)判斷)的數(shù)組的第一個元素的值括丁。
find() 方法為數(shù)組中的每個元素都調(diào)用一次函數(shù)執(zhí)行:
當數(shù)組中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之后的值不會再調(diào)用執(zhí)行函數(shù)伶选。
如果沒有符合條件的元素返回 undefined
注意: find() 對于空數(shù)組史飞,函數(shù)是不會執(zhí)行的。
注意: find() 并沒有改變數(shù)組的原始值考蕾。
語法:
const arr= [4, 9, 16, 25];
const b = arr.find(item => item>10)
const c = arr.find(item => item<1)
console.log(arr)? //輸出: [4, 9, 16, 25]
console.log(b)? // 輸出:16
console.log(c)? // 輸出:undefined
findIndex
findIndex() 方法返回傳入一個測試條件(函數(shù))符合條件的數(shù)組第一個元素位置祸憋。
findIndex() 方法為數(shù)組中的每個元素都調(diào)用一次函數(shù)執(zhí)行:
當數(shù)組中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置会宪,之后的值不會再調(diào)用執(zhí)行函數(shù)肖卧。
如果沒有符合條件的元素返回 -1
注意: findIndex() 對于空數(shù)組,函數(shù)是不會執(zhí)行的掸鹅。
注意: findIndex() 并沒有改變數(shù)組的原始值塞帐。
語法:
const arr= [4, 9, 16, 25];
const b = arr.findIndex(item => item>10)
const c = arr.findIndex(item => item<1)
console.log(arr)? // 輸出:[4, 9, 16, 25]
console.log(b)? // 輸出:2
console.log(c)? // 輸出:-1
some
some() 方法用于檢測數(shù)組中的元素是否滿足指定條件(函數(shù)提供)拦赠。
some() 方法會依次執(zhí)行數(shù)組的每個元素:
如果有一個元素滿足條件,則表達式返回true , 剩余的元素不會再執(zhí)行檢測葵姥。
如果沒有滿足條件的元素荷鼠,則返回false。
注意: some() 不會對空數(shù)組進行檢測榔幸。
注意: some() 不會改變原始數(shù)組允乐。
語法:
const arr= [4, 9, 16, 25];
const b = arr.some(item => item>10)
const c = arr.some(item => item<1)
console.log(arr)? //輸出: [4, 9, 16, 25]
console.log(b)? // 輸出:true
console.log(c)? // 輸出:false
every
every() 方法用于檢測數(shù)組所有元素是否都符合指定條件(通過函數(shù)提供)。
every() 方法使用指定函數(shù)檢測數(shù)組中的所有元素:
如果數(shù)組中檢測到有一個元素不滿足削咆,則整個表達式返回 false 牍疏,且剩余的元素不會再進行檢測。
如果所有元素都滿足條件拨齐,則返回 true鳞陨。
注意: every() 不會對空數(shù)組進行檢測。
注意: every() 不會改變原始數(shù)組瞻惋。
語法:
const arr= [4, 9, 16, 25];
const b = arr.every(item => item>10)
const c = arr.every(item => item>1)
console.log(arr)? //輸出: [4, 9, 16, 25]
console.log(b)? // 輸出:false
console.log(c)? //輸出: true
fill
fill() 方法用于將一個固定值替換數(shù)組的元素厦滤。
注意: fill() 不會對空數(shù)組進行填充。
注意: fill() 會改變原始數(shù)組歼狼。
語法:
const arr1= [4, 9, 16, 25];
const b = arr1.fill(100);
const arr2= [4, 9, 16, 25];
const c = arr2.fill(100, 2, 4)? // 2為開始填充的起始位置掏导,4為結(jié)束位置(不包含)
const arr3= [];
const d = arr3.fill(100);
console.log(arr1)? // 輸出:[100, 100, 100, 100]
console.log(b)? //輸出: [100, 100, 100, 100]
console.log(arr2)? //輸出: [4, 9, 100, 100]
console.log(c)? //輸出: [4, 9, 100, 100]
console.log(arr3)? //輸出: []
console.log(d)? //輸出: []