ES5新增數(shù)組方法
一袄秩,靜態(tài)方法
1.isArray()
-用于確定傳遞的值是否是一個Array.
-如果值是Array,則為true ;否則為false
//語法格式
Array.isArray(value)
//value為需要檢測的值阵翎。
// 下面的函數(shù)調(diào)用都返回 true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
// 下面的函數(shù)調(diào)用都返回 false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
二逢并,原型(實例)方法
-以下方法參數(shù)都是回調(diào)函數(shù),回調(diào)函數(shù)有三個參數(shù)(element, index, array)
-element:值郭卫,index: 索引砍聊,array: 數(shù)組本身,用不到的形參可省略
1.forEach()
-遍歷數(shù)組贰军,為每個數(shù)組元素調(diào)用函數(shù),有多少個元素玻蝌,就執(zhí)行多少次操作
-不會改變原數(shù)組,返回值undefined
-沒辦法中止或跳出forEachO) 循環(huán)词疼。如需中止或跳出循環(huán)灶伊,forEach() 方法不是應(yīng)當(dāng)使用的工具
// forEach 迭代(遍歷)數(shù)組
var arr = [1,2,3]
var sum = 0
arr.forEach(function(value,index,array){
console.log('每個數(shù)組元素',+value);
console.log('每個數(shù)組元素的索引號'+index);
console.log('數(shù)組本身'+array);
sum+=value
})
console.log(sum); //6
2.some()
-不會改變原數(shù)組,返回布爾值
-查找滿足條件的元素是否存在寒跳,如找到第一個滿足條件的元素就終 止循環(huán)
-數(shù)組中是否有滿足條件的元素聘萨,只要有一-個元素滿足,就返回true童太。 無滿足條件的米辐,返回false
// some 查找數(shù)組中是否有滿足條件的元素 true/false 找到第一個滿足條件的就不往后查找了,終止循環(huán)
var arr = [10,30,4]
var flag = arr.some(function(value,index,array){
// return value>=20 //true
return value<3 //false
})
console.log(flag);
var arr1 = ['pink','skyblue','red']
var flag1= arr1.some(function(value,index,array){
return value=='red' //true
})
console.log(flag1);
3.every()
-遍歷數(shù)組书释,不會改變原數(shù)組,返回布爾值
-當(dāng)數(shù)組所有元素都滿足測試條件翘贮,才返回true,只要有一項不滿足就返回false
<script>
var arr = [1000, 2000,3000 ]
var flag = arr. every(function (a,b,c) {
console.log(a +"==="+ b +"==="+c)//1000===0====1000, 2000, 3000
return a > 2000;//數(shù)組中的每 個元素的值都要大于2000的情況,最后才返回true
})
console.log(flag) //false
</script>
4.filter()
-過濾數(shù)組爆惧,將滿足條件的元素過濾出來狸页,組成新數(shù)組并返回它
-如沒有任何數(shù)組元素通過測試,則返回空數(shù)組
// filter 篩選數(shù)組
var arr = [12,66,4,88,15]
var newArr = arr.filter(function(value,index,array){
return value%2===0 //篩選數(shù)組里面為偶數(shù)的值
// return value>=60 //返回的是一個新數(shù)組扯再,所有滿足條件的都會返回到這個新數(shù)組芍耘,所以需要一個東西接收
})
console.log(newArr);
5.reduce()
array.reduce(function(preval, item, index, arr), arr1)
preval 必需。初始值, 或者計算結(jié)束后的返回值熄阻。
item 必需斋竞。當(dāng)前元素
index 可選。當(dāng)前元素的索引
arr 可選秃殉。當(dāng)前元素所屬的數(shù)組對象坝初。
arr1 可選。傳遞給函數(shù)的初始值
-不會改變原數(shù)組
-返回值:使用"reducer"回調(diào)函數(shù)遍歷整個數(shù)組后的結(jié)果
var arr = [10, 20, 30, 40]
var newArr = arr.reduce(function(preval, item, index, arr) {
console.log(preval, item, index, arr)
return preval + item
})
console.log(newArr)
6.map()
map() 方法使用為每個數(shù)組元素調(diào)用函數(shù)的結(jié)果創(chuàng)建新數(shù)組钾军。
map() 方法按順序為數(shù)組中的每個元素調(diào)用一次提供的函數(shù)鳄袍。
map() 對沒有值的數(shù)組元素不執(zhí)行函數(shù)。
map() 不會改變原始數(shù)組吏恭。
var arr=[1,2,3,4,5,6,7]
var a = arr.map(value => {
return value * 2
})
console.log(a);//[2, 4, 6, 8, 10, 12, 14]