javascript - 每次循环更改变量
问题描述
嗨,我有一个非常简单的问题。我需要在每个循环中从我的状态中获取一个新值。在第一个循环中,我需要绑定到 varCase.intro1 -> 接下来我需要绑定到 varCase.intro2 等等。我知道如何更改我试图从中创建的对象中的键,但我不确定如何动态更改值。
如果您有一个解决方案,我不需要创建每个循环的常量,这也是首选(因为我在完整对象中有很多键)。
谢谢。
我试过像这样设置它 const intro = [varCase.intro + i] 但它返回 NaN (我想这是有道理的)。
const { varCase, formCount } = this.state;
for (let i = 1; i <= formCount; i++) {
const intro = varCase.intro[i];
}
const obj = {
['diff' + i]: {intro: intro}
解决方案
当您知道密钥时,您可以使用.
它从对象中获取值。当密钥是动态的时,您可以使用[]
. 例子varCase["intro"+i];
const { varCase, formCount } = this.state;
let finalObj = {}
for (let i = 1; i <= formCount; i++) {
finalObj["diff" + i] = {intro : varCase["intro"+i]}
}
console.log(finalObj);
在您给出的示例中,您正在intro
for 循环中创建变量。这不能在外面访问。
更新了阅读您的评论的答案。您可以根据需要修改 finalObj
推荐阅读
- javascript - 使用cordova-plugin-qrscanner 构建cordova 应用程序的问题
- c# - 将自定义 EventArgs 作为事件参数传递
- hadoop - HBase AsyncProcess 警告
- jquery - 如何使用jquery动态显示产品?
- android - 如何使用 FFMPEG 合并两个视频?
- google-speech-api - Google Cloud Text-to-speech API:在浏览器上播放文本时突出显示文本
- math - 理解公式压缩伽玛
- sql - 使用 postgres 中一个表的列的总和结果更新另一个表的列
- javascript - Puppeteer 等到页面完全加载
- javascript - Laravel - IE 显示与 JavaScript 中的 firefox 和 chrome 不同的时间