网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

javascript数组遍历,js遍历数组的方法有哪些

JavaScript怎样无限遍历数组

var arr = [12,23,34,[234,344,34],23,'你好',[123,34],12];

公司主营业务:网站制作、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出宣城免费做网站回馈大家。

var result = [];

function isArray(obj) {  

return Object.prototype.toString.call(obj) === '[object Array]';   

}

function test(source) {

for(var i = 0,len = source.length; i  len; i++) {

var item = source[i];

if(isArray(item)) test(item);

else {

result.push(item);

}

}  

}

test(arr);

console.log(result);   //[12, 23, 34, 234, 344, 34, 23, "你好", 123, 34, 12]

思路就是用递归,但不清楚遍历后你想要具体进行什么操作,所以就把数组里的各项拆分并保存起来了。你可以在此基础上修改成想要的,剔除不是数组的元素或者中止遍历都可以。

js数组遍历的常用的几种方法以及差异和性能优化

script type="text/javascript"

/*对比:

1、map速度比foreach快

2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,foreach返回undefined

3、map因为返回数组所以可以链式操作,foreach不能

4, map里可以用return ,而foreach里用return不起作用,foreach不能用break,会直接报错*/

/*方法一:*/

var arr1 = [1, 2, 3, 4, 5, 6];

for(var i = 0, len = arr1.length; i len; i++) { //优化性能处理

console.log(arr1[i], 'for遍历出来的数据'); //每个item 1,2,3,4,5,6

}

/*方法二:*/

/*forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身*/

var arr2 = [{

name: 'bob',

age: 20

},

{

name: 'tom',

age: 18

},

{

name: 'sos',

age: 19

}

]

arr2.forEach((val, i) = { //没有返回值的,对原来数组也没有影响

console.log(val, '遍历出来的每个obj')

});

/*方法三:*/

var fruits = [1, 2, 3, 4, 5, 6, 7, 8];

let arr = fruits.map((item, index) = {

console.log(item, 'top')

console.log(index, 'top')

return item * 8

})

console.log(arr, 'newarr') //[8, 16, 24, 32, 40, 48, 56, 64] "newarr"

var a = fruits.indexOf("Apple", 4);

console.log(a)

//for 和 forEach都是普通循环,map 带返回值并且返回一个新数组;

/*

*当前元素的值,当期元素的索引值,当期元素属于的数组对象;

语法:array.map(function(currentValue,index,arr), thisValue)

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组。

* */

/*方法四:*/

/*兼容写法:

不管是forEach还是map在IE6 - 8 下都不兼容( 不兼容的情况下在Array.prototype上没有这两个方法), 那么需要我们自己封装一个都兼容的方法:*/

/**

* forEach遍历数组

* @param callback [function] 回调函数;

* @param context [object] 上下文;

*/

Array.prototype.myForEach = function myForEach(callback, context) {

context = context || window;

if('forEach' in Array.prototye) {

this.forEach(callback, context);

return;

}

//IE6-8下自己编写回调函数执行的逻辑

for(var i = 0, len = this.length; i len; i++) {

callback callback.call(context, this[i], i, this);

}

}

/**

* map遍历数组

* @param callback [function] 回调函数;

* @param context [object] 上下文;

*/

Array.prototype.myMap = function myMap(callback, context) {

context = context || window;

if('map' in Array.prototye) {

return this.map(callback, context);

}

//IE6-8下自己编写回调函数执行的逻辑var newAry = [];

for(var i = 0, len = this.length; i len; i++) {

if(typeof callback === 'function') {

var val = callback.call(context, this[i], i, this);

newAry[newAry.length] = val;

}

}

return newAry;

}

/script

javascript中遍历数组有哪几种方式?

concat()连接两个或更多的数组,并返回结果。

join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

pop()删除并返回数组的最后一个元素

push()向数组的末尾添加一个或更多元素,并返回新的长度。

reverse()颠倒数组中元素的顺序。

shift()删除并返回数组的第一个元素。

slice()从某个已有的数组返回选定的元素等等。

JavaScript 遍历出一个数组中对象的某个值

具体代码如下所示:

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、


当前名称:javascript数组遍历,js遍历数组的方法有哪些
URL网址:http://bjjierui.cn/article/dsdedch.html

其他资讯