IndexOf
indexOf() 方法返回在該數(shù)組中第一個找到元素位置,如果它不存在則返回-1;
不用indexOf() 時
var arr = ['apple', 'orange', 'pear'];
var index = 0;
for(var i = 0; i < arr.length; i++){
if(arr[i] == 'orange'){
index = i;
}
}
console.log(index);
使用后
var arr = ['apple', 'orange', 'pear'];
console.log(arr.indexOf('orange'));
lastindexOf()
lastIndexOf() 方法返回在該數(shù)組中最后一個找到的元素位置,和indexof相反。
every()
every()可是檢查數(shù)組中的每一項是否符合條件
使用for:
var ary = [12, 23, 24, 42, 1];
var result = function() {
for(var i = 0; i < ary.length; i++){
if(ary[i < 0]){
return false;
}
}
return true;
}
console.log(result()); //全部滿足,返回true
使用every:
var ary = [12,23,24,42,1];
var result = ary.every(function(item, index){
return item > 0
})
console.log(result);
some()
some()可以檢查數(shù)組中是否有某一項符合條件
使用for:
var ary = [12,23,-24,42,1];
var result = function() {
for(var i = 0; i < arr.length; i++){
if(arr[i] < 0){
return true
}
}
return false;
}
console.log(result()); //有一項小于0,返回true
使用some:
var ary = [12,23,-24,1];
var result = ary.some(function(item, index){
return itme < 0;
})
console.log(result);
filter
filter() 方法創(chuàng)建一個新的匹配過濾條件的數(shù)組
不用filter() 時
var arr = [1,2,3,4,5,6,7,8,9]
var newArr = [];
for(var i = 0; i < arr.length; i++){
if(arr[i] % 2){
newArr.push(arr[i]);
}
}
console.log(newArr);
使用filter()后
var arr = [1,2,3,4,5,6,7,8,9];
var newArr = arr.filter(function(item){
return item % 2
});
console.log(newArr);
map
map() 對數(shù)組的每個元素進行一定操作后,返回一個新的數(shù)組
不用map()時
var oldArr = [{first_name: 'shuai'},{first_name:'dan'}];
var newArr;
for(var i = 0; i < oldArr.length; i++){
var item = oldArr[i];
item.last_name = 'zhang';
newArr[i] = item;
}
console.log(newArr());
使用map()時
var oldArr = [{first_name: 'shuai'},{first_name:'dan'}];
var newArr = oldArr.map(function(item, index){
item.last_name ='zhang';
return item;
});
console.log(newArr);
reduce
reduce()可以實現(xiàn)一個累加器的功能,將數(shù)組的每個值(從左到右)將其降低到一個值。
例如:統(tǒng)計一個數(shù)字中有多少個不重復的單詞。
不使用reduce時
var arr = ['apple','orange','apple'];
var obj = {};
for(var i = 0; i < arr.length; i++){
var item = arr[i];
obj[item] = (obj[item] + 1) || 1;
}
console.log(obj);
使用reduce()后
var arr = ['apple', 'orange', 'apple'];
var obj = arr.reduce(function(prev, next){
prev[next] = (prev[next] + 1) || 1;
return prev;
}, {});
console.log(obj);
reduce(callback, initialValue)會傳入兩個變量?;卣{(diào)函數(shù)(callback)和初始值(initialValue)。假設(shè)函數(shù)它有個傳入?yún)?shù),prev和next,index和array。prev和next你是必須要了解的。
一般來講prev是從數(shù)組中第一個元素開始的,next是第二個元素。但是當你傳入初始值(initialValue)后,第一個prev將是initivalValue,next將是數(shù)組中的第一個元素。