扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
//实现一个 Array each方法 实现遍历多维数组
嘉峪关网站建设公司创新互联,嘉峪关网站设计制作,有大型网站制作公司丰富经验。已为嘉峪关上1000家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的嘉峪关做网站的公司定做!
var arr = [1,2,3,[4,[5,6]]]; //arr.length
Array.prototype.each = function(fn){
try{
//1 目的 遍历数组的每一项 //计数器 记录当前遍历的元素位置
this.i || (this.i=0);
//2 严谨的判断什么时候去走each核心方法
//当数组的长度大于 0 的时候 传递的参数 必须为函数
if( this.length0 fn.constructor == Function ){
// 循环遍历数组的每一项
while( this.i this.length ){
//获取数组的每一个值
var e = this[this.i]; //数组的每一项
//如果当前元素获取到了 并且当前元素是一个数组
if(e e.constructor == Array ){
//直接递归操作
e.each(fn);
}else{
//如果不是数组 (那就是一个单个元素)
//var obj = true;
//fn.apply(obj,[e]);
//这的目的就是为了把数组的当前元素 传递给fn函数,并且让函数执行
fn.call(e,e);
}
this.i++
}
this.i == null ; //释放内存 垃圾回收机制回收变量
}
}catch(err){
//do something
}
return this;
}
arr.each(function(item){
console.log(item)
});
具体代码如下所示:
1、script //----------------for用来遍历数组对象;
2、 var i,myArr = [1,2,3]; for (var i = 0; i myArr.length; i++) { console.log(i+":"+myArr[i]); };
3、 //---------for-in 用来遍历非数组对象 var man ={hands:2,legs:2,heads:1}; //为所有的对象添加clone方法,即给内置原型(object,Array,function)增加原型属性,该方法很强大,也很危险 if(typeof Object.prototype.clone ==="undefined"){ Object.prototype.clone = function(){}; } ;
4、 // for(var i in man){ if (man.hasOwnProperty(i)) { //filter,只输出man的私有属性 console.log(i,":",man[i]); }; } ;
5、//输出结果为print hands:2,legs:2,heads:1 for(var i in man) {//不使用过滤 console.log(i,":",man[i]); } ;
6、 //输出结果为://hands : 2 index.html:20 //legs : 2 index.html:20 //heads : 1 index.html:20 //clone : function ;
7、for(var i in man) { if(Object.prototype.hasOwnProperty.call(man,i)) { //过滤 console.log(i,":",man[i]); } };
8、 //输出结果为print hands:2,legs:2,heads:1 /script 。
javaScript遍历对象总结:
1、
2、
function getArrayValue(){ var arr = new Array(['a','b','c'],['d','e','f']);//二维数组 for(i=0;iarr.length;i++){ var tmpArr = new Array(); tmpArr = arr[i]; for(j=0;jtmpArr.length;j++){ var tmp = tmpArr[j]; alert(tmp); } } } 给你一个例子,多维的话可以在循环。(可能方法比较笨,但是好用)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流