javascript中的for each in怎么使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中的for each in怎么使用相关的知识,希望对你有一定的参考价值。

1,js中目前应该没有for each in这种方式,你说的应该是两种方式

        ①,forEach

        ②,for ...in

2,forEach用法

        var arr = [44,9,11,22,33,55,66];

        arr.forEach(function(ele,index)

            console.log("forEach用法\\t"+arr[index]+"-----"+ele);

        );

3,for...in的用法

       // for in 遍历需要两个形参 ,index表示数组的下标(可以自定义),arr表示要遍历的        //数组

       var arr = [44,9,11,22,33,55,66];

      for(var index in arr)

                console.log("for...in用法\\t"+arr[index]);

       

4,效果图

 

参考技术A http://www.kuaipao8.com/?p=683,看一下这个链接吧!for each in 我平常没有过,用到也只是for in,主要用作循环使用的,如果你想用到数组的键值的时候可以使用该函数!
<script type="text/javascript">
var arr = new Array();
arr['name'] = "张珊";
arr['number'] = "23";
arr['sex'] = "女";

for (var i in arr )
console.log(i);
console.log(arr[i]);

</script>
js自定数组的时候怎么写值我忘记了,就用笨方法先实现吧!你看一下本回答被提问者和网友采纳

for each...in for...in for...of

for each...in

使用一个变量迭代一个对象的所有属性值,对于每一个属性值,有一个指定的语句块被执行.

for each...in 是 ECMA-357 (E4X) 标准的一部分, 大部分非Mozilla浏览器都没有实现该标准, E4X并不是 ECMAScript 标准的一部分.

作为ECMA-357(E4X)标准的一部分,for each...in语句已被废弃,E4X中的大部分特性已被删除,但考虑到向后兼容,for each...in只会被禁用而不会被删除,可以使用ES6中新的for...of语句来代替.

语法:

for each (variable in object) {
  statement
}

  

参数:

variable
用来遍历属性值的变量,前面的var关键字是可选的.该变量是函数的局部变量而不是语句块的局部变量.
object
该对象的属性值会被遍历.
statement
遍历属性值时执行的语句. 如果想要执行多条语句, 请用({ ... }) 将多条语句括住.

 

一些对象的内置属性是无法被遍历到的,包括所有的内置方法,例如String对象的indexOf方法.不过,大部分的用户自定义属性都是可遍历的.

警告:永远不要使用for each...in语句遍历数组,仅用来遍历常规对象。

for...in 

以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。

语法:

for (variable in object) {...}

  

参数:

variable
在每次迭代时,将不同的属性名分配给变量
object
被迭代其枚举属性的对象。

 

for..in 不应该被用来迭代一个下标顺序很重要的 Array .

数组索引仅是可枚举的整数名,其他方面和别的普通对象属性没有什么区别。for...in 并不能够保证返回的是按一定顺序的索引,但是它会返回所有可枚举属性,包括非整数名称的和继承的。

因为迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。 因此当迭代那些访问次序重要的 arrays 时用整数索引去进行 for 循环 (或者使用 Array.prototype.forEach() 或 for...of 循环) 。

仅迭代自身的属性

如果你只要考虑对象本身的属性,而不是它的原型,那么使用 getOwnPropertyNames() 或执行  hasOwnProperty() 来确定某属性是否是对象本身的属性 (也能使用propertyIsEnumerable)。另外,如果你知道外部不存在任何的干扰代码,你可以扩展内置原型与检查方法。

var obj = {a:1, b:2, c:3};
    
for (var prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}

// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"

  

var triangle = {a:1, b:2, c:3};

function ColoredTriangle() {
  this.color = "red";
}

ColoredTriangle.prototype = triangle;

var obj = new ColoredTriangle();

for (var prop in obj) {
  if( obj.hasOwnProperty( prop ) ) {
    console.log("o." + prop + " = " + obj[prop]);
  } 
}

// Output:
// "o.color = red"

  

for...of

 ECMAScript 6新方法,使用时参考https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...of

  • for...of - 一个相似的语法,用来遍历可迭代对象,有时候效果等同于for each...in语句.
  • 对于for...of的循环,可以由breakthrow 或return终止。在这些情况下,迭代器关闭。
  • 不要重用生成器

    生成器不应该重用,即使for...of循环的提前终止,例如通过break关键字。在退出循环后,生成器关闭,并尝试再次迭代,不会产生任何进一步的结果。

技术分享图片

以上是关于javascript中的for each in怎么使用的主要内容,如果未能解决你的问题,请参考以下文章

for each in for in 与for of

for each in for in 与for of

js中for in 和 for each in的用法和区别

jquery each报 Uncaught TypeError: Cannot use 'in' operator to search for错误

for,for-each,for-in,for-of,map的比较

for each...in for...in for...of