资讯专栏INFORMATION COLUMN

Javascript数组的“字符串”索引 & for…in 和 for…of的区别

mo0n1andin / 1308人阅读

摘要:中的数组是没有字符串索引的,形如只是在对象上添加了属性。本来有几个例子,然而搜到了的文档,所以摘一点下面摘自循环会遍历一个对象上面的所有属性。语法是针对集合的,而不是所有的对象。它会遍历定义了属性的集合的所有元素。

TL;DR:js中的数组是没有“字符串”索引的,形如array["b"] = someValue只是在array对象上添加了属性

本来有几个例子,然而搜到了MDN的文档,所以摘一点:

下面摘自MDN
Difference between for...of and for...in

The for...in loop will iterate over all enumerable properties of an object.

for in 循环会遍历一个对象上面的所有enumerable属性。

The for...of syntax is specific to collections, rather than all objects. It will iterate in this manner over the elements of any collection that has a [Symbol.iterator] property.

for of 语法是针对集合的,而不是所有的对象。它会遍历定义了[Symbol.iterator]属性的集合的所有元素。

The following example shows the difference between a for...of loop and a for...in loop.

MDN的例子如下:

Object.prototype.objCustom = function() {}; 
Array.prototype.arrCustom = function() {};

let iterable = [3, 5, 7];
iterable.foo = "hello";

for (let i in iterable) {
  console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}

for (let i of iterable) {
  console.log(i); // logs 3, 5, 7
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83911.html

相关文章

  • JavaScript数组

    摘要:与稀疏数组对立的为密集数组,密集数组的索引会被持续的创建,并且其元素的数量等于其长度。创建一个长度为的数组,并初始化了个元素使用构造函数创建数组对象的时候,关键字是可以省略的。另外使用和删除元素是影响数组的长度的。 说明:本文只总结了JavaScript数组在web端的行为,不包括NodeJs端的行为。本文不涉及类型化数组(TypedArray)的讨论、总结。 一、什么是数组 数组的定...

    HtmlCssJs 评论0 收藏0
  • js&jq面试笔记(下)

    摘要:面试笔记,该部分为下部分。构造函数模式使用自定义的构造函数与普通函数一样,只是用它来创建对象,定义对象类型如的属性和方法。使用原型来添加属性共享一个原型对象的方法原型是指向原型对象的,这个原型对象与构造函数没有太大关系,唯一的关系 js&jq面试笔记,该部分为下部分。 字符串相关 1、定义一个方法,用于将string中的每个字符之间加一个空格,并输出 如:hello -> h e l ...

    xinhaip 评论0 收藏0
  • 温故js系列(16)-数组&数组方法使用详解

    摘要:创建数组数组字面量数组构造函数参数为数组建议使用数组字面量方式,性能好,代码少,简洁,毕竟代码少。数组判断方法用来判断某个值是否为。的这是最简洁最直接的遍历数组元素的语法。把数组转换为本地数组,并返回结果。 前端学习:前端教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-前端资源汇总 欢迎提issues斧正:数组&数组方法使用详解 Array对象 之前一...

    morgan 评论0 收藏0
  • JS 数组循环遍历方法对比

    摘要:循环方法方法不改变原数组方法会给原数组中的每个元素都按顺序调用一次函数。筛选出过滤出数组中符合条件的项组成新数组代码方法方法为数组中的每个元素执行一次函数,直到它找到一个使返回表示可转换为布尔值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 发展至今已经发展出多种数组的循环遍...

    BlackFlagBin 评论0 收藏0
  • Java编程基础14——常见对象_StringBuffer&数组排序&包装类

    摘要:提供了排序,查找等功能。常用操作常用的操作之一用于基本数据类型与字符串之间的转换。 1_StringBuffer类的概述 A:StringBuffer类概述 通过JDK提供的API,查看StringBuffer类的说明 线程安全的可变字符序列 (一个类似于 String 的字符串缓冲区,但不能修改 : 不能像String那样用 + 连接来修改String) B:String...

    banana_pi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<