与JavaScript恋爱之数组(三)

数组轮回
数组轮回要领:for轮回,forEach(),for/in
一、for轮回
1.运用Object.keys()参数为对象,返回一个数组,为对象属性名的鸠合(不可罗列的除外)。IE8+,然后运用for轮回获得对象的值的鸠合。

var o={a:1,b:2,c:3};
Object.defineProperty(o,"c",{ //使o中的属性c不可罗列
   enumerable:false
});
var keys=Object.keys(o);//获得o中的属性名的鸠合,keys为一个数组,不可罗列的不能遍历
var arr=[];
for(var i=0,len=keys.length;i<len;i++){
   arr.push(o[keys[i]]);
}
arr;//1,2  获得o中可罗列的属性的值的鸠合

2.过滤数组中为undefined,null,NaN,"",false,和不存在的元素(希罕数组中有不存在的元素)

var arr=[1,2,3,,undefined,null,"",false,NaN];
var p=[];
for(var i=0,len=arr.length;i<len;i++){
   if(!arr[i]) continue;
   p.push(arr[i]);
}
p;//1,2,3

3.在希罕数组中过滤掉不存在的元素

var arr=[undefined,1,2,3,,null,"",false,NaN];
var p=[];
for(var i=0,len=arr.length;i<len;i++){
   if(arr[i]===undefined && !(i in arr)) continue;
   p.push(arr[i]);
}
p;//undefined,1,2,3,null,"",false,NaN

4.在数组中过滤null元素

var arr=[undefined,1,2,3,,"",null,false,NaN];
var p=[];
for(var i=0,len=arr.length;i<len;i++){
   if(arr[i]===null) continue;
   p.push(arr[i]);
}
p;//undefined,1,2,3,,"",false,NaN

5.在数组中过滤为undefined的元素

var arr=[undefined,1,2,3,,"",null,false,NaN];
var p=[];
for(var i=0,len=arr.length;i<len;i++){
   if(arr[i]===undefined) continue;
   p.push(arr[i]);
}
p;//1,2,3,"",null,false,NaN

二、for/in
1.运用for/in过滤掉不可罗列的元素


var arr=[1,2,3,4];
var p=[];
Object.defineProperty(arr,"3",{ //使索引为3,即属性名为"3"不可罗列
   enumerable:false
});
for(var i in arr){
   p.push(arr[i]);
}
p;//1,2,3

1.运用for/in罗列属性

Array.prototype.run=function(){  //run()返回实例数组索引为0的元素
   return this["0"];
};
var arr=[1,2,3];
var p=[];
for(var i in arr){
   p.push(i);
}
p;//0,1,2,3  这里0,1,2,3是arr里的索引,arr被罗列了4个元素包含继续属性run

1.运用for/in过滤继续属性

Array.prototype.run=function(){  //run()返回实例数组索引为0的元素
   return this["0"];
};
var arr=[1,2,3];
var p=[];
for(var i in arr){
   if(!arr.hasOwnProperty(i)) continue;
   p.push(i);
}
p;//0,1,2只罗列了3个属性,过滤了继续属性run

三、forEach()遍历,IE8+

var arr=[1,2,3,4];
var toal=0;
arr.forEach(function(x){
    toal+=x;
});
toal;//10
    原文作者:君莫言
    原文地址: https://segmentfault.com/a/1190000007811722
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞