javascript 数组方法使用即实现

这篇博客介绍了JavaScript中常见的数组操作,包括concat、filter、every、some、indexOf、join、slice、reduce和reduceRight等方法,并展示了如何使用这些方法实现自定义功能,如myMap、myEvery和mySome。此外,还探讨了如何通过自定义函数改变原数组和进行数组求和的技巧。
摘要由CSDN通过智能技术生成
// var arr = [1,3,5,7,9];
//			var arr2 = arr.concat(11,13,15);
//			console.log(arr2);
//			filter:筛选符合条件的数组并返回,不改变原数组
//			var arr3 = arr.filter(function(ege){		
//				return ege > 3;
//			})
//			console.log(arr3);
//			every:判断数组是否符合条件,返回true或者false,不改变原数组	some:只需满足一个条件即可返回true;
//			var arr4 = arr.every(function(ege){
//				return ege > 0;
//			})
//			console.log(arr4);
//			indexOf:查找规定数值所在数组的索引
//			var arr5 = arr.indexOf(5);
//			console.log(arr5);
//			console.log(arr.reverse())

//			将数组改变为字符串,不改变原数组
//			var a = arr.join("-");

//			从数组索引第一位截取到第三位
//			var arr2 = arr.slice(1,3);

//			计算数组的和
//			var arr2 = arr.reduce(function(total,value){
//				return total + value;
//			})

//			var arr2 = arr.reduceRight(function(prviousValue,currentValue){
//				return prviousValue * currentValue;
//			})





//改变原数组
//			arr.push(1)

//			arr.pop()

//			var b = arr.shift();

//			arr.unshift(0);

//			arr.splice(0,3,9,8,7);

// Array.prototype.myMap = function(fn){
// 	var newArr = [];
// 	var len = this.length;
// 	for(var i = 0 ; i < len ; i++){
// 		newArr.push(fn(this[i],i));
// 	}
// 	return newArr;
// }
// var arr2 = arr.myMap(function(ele,index){
// 	return ele * index;
// })




// var arr = [1,2,3,4,5,6,7];
// Array.prototype.myEvery = function(fn){
//     var len = this.length;
//     var newArr = [];
//     for(var i = 0 ; i < len ; i++){
//         newArr.push(fn(this[i]));
//         if(newArr[i] == false){
//             return false;
//         }else {
//             return true;
//         }
//     }
// }
// var arr2 = arr.myEvery(function(ege){
//     return ege < 8;
// })

// var arr = [1,2,3,4,5,6,7];
// Array.prototype.mySome = function(fn){
//     var len = this.length;
//     var newArr = [];
//     var count = 0;
//     for(var i = 0 ; i < len ; i++){
//         newArr.push(fn(this[i]));
//         // console.log(newArr[i]);
//         if(newArr[i] == false){
//             count++;
//             if(count == len){
//                 return false;
//             }
//         }else if(newArr[i] == true){
//             return true;
//         }
//     }
// }
// var arr2 = arr.mySome(function(ege){
//     return ege < 10;
// })

// var arr = [1,2,3,4,5,6];
// Array.prototype.myMap = function(fn){
//     var len = this.length;
//     var newArr = [];
//     for(var i = 0 ; i < len ; i++){
//         newArr.push(fn(this[i],i))
//     }
//     return newArr;
// }m
// var arr2 = arr.myMap(function(item, index){
//     return item + index;
// })

// var arr2 = [1,2,3,4,5,6,7,8,9];
// Array.prototype.myReduce = function(fn){
// 	var len = this.length;
// 	var num = 0;
// 	for(var i = 0 ; i < len ; i+=2){
// 		if(i+1){
// 			num += fn(this[i],this[i+1]);
// 			console.log(fn(this[i],this[i+1]));
// 		}else {
// 			num += fn(this[i]);
// 		}
// 	}
// 	return num;
// }
// var arr3 = arr2.myReduce(function(previous, current){
// 	var current = current || 0;
// 	return previous +  current;
// })


var arr = [1,2,3,4,5,6,7];
Array.prototype.myReduce = function(fn){
  var len = this.length;
  var result = 0;
  for(var i = 0 ; i < len ; i+=2){
      if(i + 1 == len && i % 2 == 0){
          result += fn(this[i],0);
      }else {
          result += fn(this[i],this[i+1]);
      }
  }
  return result;
}
var arr2 = arr.myReduce(function(previous,current){
  return previous + current;
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值