gpt4 book ai didi

javascript - 使用 for/in 将对象属性复制到数组中

转载 作者:行者123 更新时间:2023-11-30 10:19:23 25 4
gpt4 key购买 nike

`我正在阅读“JavaScript:权威指南”,我被一个例子迷住了:

“您可以使用如下代码将所有对象属性的名称复制到一个数组中”

var o = {x:1, y:2, z:3};
var a = [], i = 0;
for(a[i++] in o) /* empty */;

“在上面的代码之后,这一行枚举了数组索引 0、1 和 2”

for(i in a) console.log(i);

有人可以向我解释一下第一个 for/in 循环是如何工作的吗?在我看来,a[i++] 会在第一次通过循环时评估为 1,而不是 0

最佳答案

Can someone please explain to me like I'm five how the first for/in loop works?

A for-in loop确实允许在 in 之前的任何左侧表达式(即,您可以分配给的内容),而不仅仅是普通变量。所以

for(a[i++] in {x:1, y:2, z:3})

一样
a[i++] = "x";
a[i++] = "y";
a[i++] = "z";

It seems to me a[i++] would evaluate to 1 on the first time through the loop, not 0.

i++ 是一个后缀表达式,所以不 - 它会产生值 0(i 之前有)然后递增它。参见 ++someVariable Vs. someVariable++ in Javascript了解详情。

关于javascript - 使用 for/in 将对象属性复制到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22133273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com