forin循环

一、语法

1、遍历数组

var myArr=[‘camille‘,‘2020‘,‘vas‘,‘en‘,‘France‘];
for (var index in myArr) {
console.log(myArr[index]);
}
/*camille
  2020
  vas
  en
  France
*/

2、遍历对象

var myOject={
    name:"camille",
    age:"24",
    sex:"female",
    city:"shanghai",
    job:"frontend engineer"
};
for (var key in myOject) {
  myObject.hasOwnProperty(key) && console.log(myOject[key]);
}

for in,以任意序迭代一个对象的可枚举属性。实际是为循环enumerable对象而设计的,循环遍历对象的key。也可以循环数组,但是不推荐。因为 for in不仅遍历数组中的元素,还会遍历自定义的属性,甚至原型链上的所有可枚举属性都会被访问到。因此一般常用来遍历非数组的对象并且使用hasOwnProperty()方法去过滤掉原型链上的属性。for in 遍历属性的顺序并不确定,即输出的结果顺序与属性在对象中的顺序无关,也与属性的字母顺序无关,与其他任何顺序也无关。for in 比其他循环慢,如果明确需要迭代一个属性数量未知的对象,可以用for in循环。如果需要遍历一个数量有限的已知属性列表,使用其他循环会更快。

break跳出本次循环并执行循环体后的代码,continue结束本次循环执行下一次循环。没有return。

二、执行效率

var arr = [],
    arrlen = arr.length = 1000000;
for(var i=0; i<arrlen; i++){
  arr[i] = ‘looptest‘;
}
var t1 = +new Date();
for(var item in arr){
}
var t2 = +new Date();
console.log(‘for in:‘ + (t2-t1));

比其他循环慢。

时间: 2024-10-08 10:19:46

forin循环的相关文章

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

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

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等等.那么我们是否能自己定义一个

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循环,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',

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

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

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

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)一

让js的forin循环禁止forin到某个属性的话要怎么做

//知识点1:for In循环是可以枚举到继承的属性的://知识点2:使用defineProperty让属性无法通过forIn枚举到://知识点3:用definedProperty重新定义一个属性药把这个属性设置为空,然后重新定义才行哦: var obj = {}; Object.defineProperty(obj, "name", { get : function() {return 1}, enumberable : false }); //使用ECMA5中的defineProp

ios中for循环和for-in循环的用法和区别

for循环主要用在你已经知道了循环的次数 比如你要在屏幕上打出100个"hello word!" 那么就可以用for (int i=0;i<100,i++) 这里你已经很明确了是100 for in循环主要是方便遍历已经知道对象类型的数组 同时不关心索引的情况 比如已经知道数组里都是uibutton 那么你就可以直接用 for uibutton *tmpbutton in array 这样你就可以直接通过tmpbutton直接访问数组里的每一个button 另外数组还有一种用bl