IndexOf
indexOf() 方法返回在该数组中第一个找到元素位置,如果它不存在则返回-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() 方法返回在该数组中最后一个找到的元素位置,和indexof相反。
every()
every()可是检查数组中的每一项是否符合条件
使用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()可以检查数组中是否有某一项符合条件
使用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() 方法创建一个新的匹配过滤条件的数组
不用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() 对数组的每个元素进行一定操作后,返回一个新的数组
不用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()可以实现一个累加器的功能,将数组的每个值(从左到右)将其降低到一个值。
例如:统计一个数字中有多少个不重复的单词。
不使用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)会传入两个变量。回调函数(callback)和初始值(initialValue)。假设函数它有个传入参数,prev和next,index和array。prev和next你是必须要了解的。
一般来讲prev是从数组中第一个元素开始的,next是第二个元素。但是当你传入初始值(initialValue)后,第一个prev将是initivalValue,next将是数组中的第一个元素。