javascript 如何使用属性访问器定义for...of循环的局部变量

clj7thdc  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(57)

在MDN JavaScript参考页面的for...of语句中看到了这一小段,在Description部分的末尾,它说:
您可以使用解构来指派多个局部变量,或使用属性存取子(例如,for(x.y of iterable))来指派值给对象属性。
这是什么意思?在for...of语句中不能使用x.y语法来定义 local variable。我在一个简短的脚本文件中使用node详细地尝试了这个方法。错误消息是ReferenceError: x is not defined
我错过了什么?

ykejflvf

ykejflvf1#

可以使用解构来分配多个局部变量,
这意味着我们可以在for循环中解构对象数组。

例如,

const iterable = [{a:'1', b:'10'}, {a:'2', b:'20'}, {a:'3', b:'30'}];

for (let {a, b} of iterable) {
  console.log(a);
  console.log(b);
}

字符串
或者使用属性访问器,比如for(x.y of iterable),将值赋给对象属性。
这意味着我们可以使用属性访问器将数组中的值赋给对象的属性。

例如,

const iterable = [{a:'1', b:'10'}, {a:'2', b:'20'}, {a:'3', b:'30'}];
let obj = {iterateValue:'', anyOtherValue:'Anything'}
// let obj = {}
// can be an empty object 
for (obj.iterateValue of iterable) {
  console.log(obj);
}

在for. of语句中不能使用x.y语法定义局部变量。

你需要在for循环之前定义对象x,而不是在for...of statement中。

ReferenceError:x未定义

这个错误意味着你还没有定义x并试图使用它。你需要在for循环之前定义它。

相关问题