gpt4 book ai didi

Javascript - 尝试循环对象时 for-of 循​​环崩溃

转载 作者:行者123 更新时间:2023-11-29 21:11:33 25 4
gpt4 key购买 nike

我有一个函数传入这个对象

enter image description here

然后我想用这段代码遍历它

    let formData = new FormData();
let item = {};
let i = 0;
for (item of files) {
formData.append('file' + i, files[i]);
formData.append('filesNumber', i + 1);
i++;
}

但是当执行到for循环的声明时,它崩溃并报错

Uncaught TypeError: files[Symbol.iterator] is not a function

怎么了?

最佳答案

基本对象不会自动实现Symbol.iteratorHere's a list of objects that do.

为了使用for..of 语法,您必须实现自己的迭代器。

let files = {
0: "a",
1: "b",
2: "c",

[Symbol.iterator]: function*() {
let i = 0;
while (this.hasOwnProperty(i)) {
yield this[i];
i++;
}
}
};

for (let item of files) {
console.log(item);
}

或者,您只需 grabs the objects keys并遍历它们。

let files = {
0: "a",
1: "b",
2: "c"
};

let keys = Object.keys(files);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let item = files[key];
console.log(`${key}: ${item}`);
}

你也可以使用好的,老式的for..in循环遍历键。

let files = {
0: "a",
1: "b",
2: "c"
};

for (let key in files) {
console.log(`${key}: ${files[key]}`);
}

关于Javascript - 尝试循环对象时 for-of 循​​环崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41617352/

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