难以将 for Of 循环表达式转换为数组可迭代语句

Posted

技术标签:

【中文标题】难以将 for Of 循环表达式转换为数组可迭代语句【英文标题】:difficulty in coverting a forOf loop expression to array iterable statement 【发布时间】:2021-05-10 19:54:17 【问题描述】:

我目前在将天气应用程序中的 forOf 循环语句转换为数组可迭代表达式时遇到了困难。 forOf 语句有效,但 .eslintrc.JSON 将其标记为无限制语法错误。

给定数组:

 const results = [

     elementId: '#result-temp', value: `$temp°` ,

     elementId: '#result-place', value: place ,

     elementId: '#result-weather', value: weatherTitle ,

     elementId: '#result-weather-desc', value: weatherDesc ,

     elementId: '#result-feeling', value: `$feeling°` ,

     elementId: '#result-humidity', value: `$humidity%` ,

     elementId: '#result-pressure', value: `$pressuremb` ,

     elementId: '#result-mintemp', value: `$minTemp°` ,

     elementId: '#result-maxtemp', value: `$maxTemp°` ,

  ];

有效的 forOf 表达式:

  for (const  elementId, value  of results) 

    document.querySelector(elementId).innerText = value;

  

我使用 forEach 但不起作用

 results.forEach( value => 

  document.querySelector(elementId).innerText = value;
  
  )

在联系到这里之前,我已经搜索了互联网并阅读了很多文档以获取想法。请问,我错过了什么?

【问题讨论】:

【参考方案1】:

你不是第二次解构:

试试这个:

results.forEach(( elementId, value ) => 
  document.querySelector(elementId).innerText = value;
)

考虑到你的 sn-p

results.forEach( value => 

  document.querySelector(elementId).innerText = value;
  
  )

上面的value 将是数组的每个项目(这是一个具有两个属性的对象)。

【讨论】:

以上是关于难以将 for Of 循环表达式转换为数组可迭代语句的主要内容,如果未能解决你的问题,请参考以下文章

理解ECMAScript 6中的for...of循环

如何在for-of中使用array.slice转换for循环或为生成的列和行映射array.slice?

一文带你理解:可以迭代大部分数据类型的 for…of 为什么不能遍历普通对象?

for..in 和 for...of 的区别

[js高手之路] es6系列教程 - 迭代器,生成器,for...of,entries,values,keys等详解

for of 和 for in 的区别