js中⼏种常⽤的数组处理⽅法的总结
⼀、filter()⽤法
功能:⽤于筛选数组中满⾜条件的元素,返回⼀个筛选后的新数组。
<script>
$(function(){
var arr = [1,-2,3,4,-5];
var minus = arr.filter(function(item,index,array){
return item < 0;
});
console.log(minus);  // [-2, -5]
})
</script>
⼆、map()⽤法
功能:⽤于遍历数组,返回处理之后的新数组,可以看到,该⽅法与forEach()的功能类似,只不过map()具有返回值,会返回⼀个新的数组,这样处理数组后也不会影响到原有数组
<script>
$(function(){
var arr=[1,-2,3,4,-5];
var newArr = arr.map(function(item,index,array){
return item * 2;
});
console.log(newArr);  // [2,-4,6,8,-10]
})
</script>
三、some()⽤法
功能:⽤于判断数组中的是否存在满⾜条件的元素,返回⼀个布尔值
<script>
$(function(){
var arr = [1,-2,3,4,-5];
var isSome = arr.some(function(item,index,array){
return item < 0;
});
console.log(isSome);  // true
})
</script>
四、reduce()⽤法
<script>
$(function(){
/*
* 语法:
*  duce(function(prev,cur,index,arr){
*      ...
*  }, init);
* 延伸:
*  reduceRight():该⽅法⽤法与reduce()其实是相同的,只是遍历的顺序相反,
*                它是从数组的最后⼀项开始,向前遍历到第⼀项。
* */
//先声明⼀个数组
var arr = [3,9,4,3,6,2,9];
//⽤法⼀:求数组元素之和
var sum = duce(function (prev, cur) {
return prev + cur;
},0);js数组方法总结
console.log("数组之和是====="+sum);
//⽤法⼆:求数组元素之积
var mul = duce(function (prev, cur) {
return prev * cur;
},1);
console.log("数组之积是====="+mul);
//求数组项最⼤值
var duce(function(prev,cur){
//                return prev<cur?cur:prev;
return Math.max(prev,cur);
},0);
console.log("数组最⼤值是====="+max);
//数组去重
var duce(function(prev,cur){
prev.indexOf(cur) === -1 && prev.push(cur);
return prev;
},[]);
console.log("数组去重之后的结果是"+newArr);
})
</script>
五、forEach()⽤法
功能:⽤于遍历数组,⽆返回值
<script>
$(function(){
//先给出⼀个数组
var arr = [1,-2,3,4,-5];
//⽤法⼀:将数组中的每⼀项翻倍
arr.forEach(function(item,index,array){
array[index] = item * 2;
});
console.log(arr);  // [2,-4,6,8,-10]
//array[index]是全等于item的
arr.forEach(function(item,index,array){
console.log(array[index] === item);  // true
});
})
</script>
六、every()⽤法
功能:⽤于判断数组中的每⼀项元素是否都满⾜条件,返回⼀个布尔值<script>
$(function(){
var arr = [1,-2,3,4,-5];
var isEvery = arr.every(function(item,index,array){
return item > 0;
});
console.log(isEvery);  // false
})
</script>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。