您认为for.in和for循环有很大区别吗?你更喜欢用哪种"for",为什么?

假设我们有一个关联数组:

var myArray = [{'key': 'value'}, {'key': 'value1'}];

所以我们可以迭代:

for (var i = 0; i < myArray.length; i++)

以及:

for (var i in myArray)

我看不出有什么大区别.是否存在任何性能问题?

推荐答案

Select 应该基于最容易理解的习语.

使用以下命令迭代数组:

for (var i = 0; i < a.length; i++)
   //do stuff with a[i]

用作关联数组的对象通过以下方式进行迭代:

for (var key in o)
  //do stuff with o[key]

除非你有惊天动地的理由,否则要坚持既定的使用模式.

Javascript相关问答推荐

我可以后增量超过1(最好是内联)吗?

我的YouTube视频没有以html形式显示,以获取免费加密信号

如何修复内容安全策略指令脚本-SRC自身错误?

如何判断属于多个元素的属性是否具有多个值之一

如何在Connect 4游戏中 for each 玩家使用位板寻找7形状?

Msgraph用户邀请自定义邮箱模板

如何从一个列表中创建一个2列的表?

为什么当我解析一个promise时,输出处于挂起状态?

我可以使用空手道用户界面来获取网页的当前滚动位置吗?

为什么这个.add.group({})在教程中运行得很好,但在我的游戏中就不行了?

使用带有HostBinding的Angular 信号来更新样式?

如何在 Select 文本时停止Click事件?

Nextjs 13.4 Next-Auth 4.2登录(&Quot;凭据&,{});不工作

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

以编程方式聚焦的链接将被聚焦,但样式不适用

我想将Sitecore搜索面过滤器从多个转换为单个

处理app.param()中的多个参数

按特定顺序将4个数组组合在一起,按ID分组

如何使用Reaction路由导航测试挂钩?

计算对象数组中属性的滚动增量