for循环,forin循环和Array.every(),obj.forEach()方法运行速度对比

for循环和forin循环是ES3中的数组和对象迭代方法,在ES5中加入了原生方法Array.every()和object.forEach()方法来迭代,下面的例子用来比较两种方式的运行速度。

注意:IE不兼容。

/**
 * Created by Administrator on 2016/12/22.
 * for()循环和Array.every()方法运行速度
 */
var Arr=[5,6,12,23,0,11,"wasd",‘on‘,34,22,111,8,9,89,‘off‘,‘12‘,‘oe‘];
(function(){
  console.time("for");
    for(var i=0;i<Arr.length;i++){
        console.log(Arr[i]);
    }
    console.timeEnd(‘for‘);
})();
(function(){
    console.time(‘every‘);
    Arr.every(function(ele,index,arr){
        console.log(ele);
        if(index!==Arr.length){
            return true;
        }
    });
    console.timeEnd(‘every‘);
})();

  运行结果:

/**
 * Created by Administrator on 2016/12/22.
 * object的forIn()循环对比forEach()方法运行速度
 */
var obj={
    a: ‘A‘,
    b: ‘B‘,
    ‘c-d-e‘: ‘CDE‘,
    ‘c‘:‘c‘,
    d:‘d‘,
    e:‘e‘,
    name:‘name‘,
    pro:{
        ‘proa‘:‘we‘,
        ‘proa‘:12
    }
};
(function(){
    console.time(‘forin‘);
    for(key in obj){
        console.log(obj[key]);
    }
    console.timeEnd(‘forin‘);
})();
(function(){
    console.time("foreach");
    Object.keys(obj).forEach(function(ele,index,arr){
        console.log(obj[ele]);
    })
    console.timeEnd(‘foreach‘);
})();

运行结果2:

时间: 2024-08-04 00:53:38

for循环,forin循环和Array.every(),obj.forEach()方法运行速度对比的相关文章

for循环+forin循环生成内容模版

最近在项目中发现for循环+forin循环在遍历时的顺序是不同的,研究了好久才实现功能,这里把代码分享给大家一起学习下. var str='尊敬的$owner$$sex$,您好!我是的客户服务经理$realname$,隶属于$areaname$,我的联系方式是$telephone$,有任务问题都可以联系我哦!' var obj={ owner:'阿刚', sex:'男', realname:'阿城', mobile:'15427283944', areacode:'42018500', task

Swift编程语言中如何实现自定义类型的for-in循环(基于Swift 2.2)

我们在Swift编程语言中常常会用到for-in循环(在编程语言术语中又被称为for-each).此外,从Swift 2.2版本起,for循环将只支持for-in形式,而不支持for i = 0; i < n; i+=1 { }这种形式了,若要使用这种形式的话,只得用while或repeat-while来代替,或想办法转为for-in. 在Swift中,标准库已经定义了许多类型可直接支持for-in循环形式,比如Range.Array.Set.Dictionary等等.那么我们是否能自己定义一个

javascript的oop——&gt;&gt;&gt; [__proto__ 与 prototype/原型链/原型属性与原型方法/for-in循环]

  前  言  OOP  javascript的oop中的__proto__  与  prototype/原型链/原型属性与原型方法/for-in循环 1  __proto__  与  prototype/原型链   1.prototype(函数的原型):函数才有prototype.prototype是一个对象,指向了当前构造函数的引用地址呢.                       2.__proto__(对象的原型对象):所有对象都要__proto__属性.当用构造函数实例化(new)一

JavaScript学习总结(一、变量、for和for-in循环)

一.变量 全局对象: 1. 每个javascript环境都有一个全局对象,在任意函数外都能用this访问到这个全局对象. 此外,该全局对象有一个附加属性window,通常这个window也指该全局对象本身. 创建的所有全局变量是这个全局对象的属性. 2. 尽量少使用全局变量:a. 始终使用var申明变量:     b. 不要用任务链来进行部分var申明,即 var  a = b = 0,此时b为全局变量. 3. 通过var申明的全局变量不能被删除,没有通过var申明的隐式全局变量则可以被删除.

python之range()函数、for-in循环和while循环

range()函数和for-in循环 函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range(0, 5); end:技术到end结束,但不包括end .例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 scan:每次跳跃的间距,默认为1.例如:range(0, 5) 等价于 range(0, 5, 1) 代码举例: 1 for n in range(3): 2 print(n

for-in循环(for-in Loops)

有个很重要的hasOwnProperty()方法,当遍历对象属性的时候可以过滤掉从原型链上下来的属性. // 对象var man = { hands: 2, legs: 2, heads: 1}; // 在代码的某个地方// 一个方法添加给了所有对象if (typeof Object.prototype.clone === "undefined") { Object.prototype.clone = function () {};} // 1.// for-in 循环for (var

for...in和for...of循环以及forEach方法

一.循环 1.for...in循环:可以把一个对象的所有属性依次循环出来. var o ={ name:"jack", age:20, city:"beijing" }; for (var key in o){ alert(key) //"name","age","city" }  由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,forj...in循环可以直接循环出Array的索引. v

for循环和循环嵌套

通过一周对c#的学习,发现很多同学在循环这一块都有点晕,其实只要一步一步的去分析执行步骤和条件,思路清晰了,自然就理解了; 而且很多时候都会for循环里面再嵌套for循环,这样如果思路不清晰,那当然就会一脸懵逼; 下面我来用几个例子,来浅谈下for循环和循环嵌套,希望对大家有所帮助; ①.输出五行五列; 我们来分析下循环过程: 1.当i=0的时候,执行内层循环 j=0,输出一个*号,然后j++;这时候j=1,输出第二个*号,然后j++;......;j=4的时候输出第五个*号,然后j++;这时候

『Luogu OJ』『C++』Level 1-3 循环!循环!循环!

关卡1-3,6道题  循环!循环!循环! 任务说明:计算机最不怕的就是重复.你让它做10000次同样的事它也不怕啦,但是让他做1亿亿次的话…… 要完成这个任务,请将以下的题目都AC掉(即通过这道题目): 1. 三连击 P1008 2.级数求和 P1035 3.数字反转 P1307 4.小玉在游泳 P1423 5.小鱼的航程(改进版) P1424 6.计数问题 P1980 成就达成时间:2015-07-15 21:54 什么?你问我这么水的题怎么拖了这么久? 首先今天课比较多…… 其次被strin