将迭代器变量添加到对象名称中

Adding Iterator Variable to an Object Name

本文关键字:对象 迭代器 变量 添加      更新时间:2023-09-26

我有以下for循环:

for (var i = 2; i < 7; i++) {
     if (cookieJSON.Cases.mdata+i.toString() == undefined)
          return i;
}

我希望对象名称等于cookieJSON.Cases.mdata2cookieJSON.Cases.mdata3cookieJSON.Cases.mdata4,等等。

我怎样才能使它工作?

使用括号:

for (var i = 2; i < 7; i++) {
     if (cookieJSON.Cases["mdata" + i] == undefined)
          return i;
}

在JavaScript中,您可以使用点表示法和属性名称文字(foo.bar)或括号表示法和属性名称字符串* (foo["bar"])访问属性名称。字符串可以是任何表达式的结果,包括字符串连接。

*在ES6中,括号中的东西也可以是Symbol,但这与你的问题无关。

您可以将键放在括号([])之间,以从字符串组成它:

cookieJSON.Cases['mdata' + i]

属性访问器

属性访问器通过使用点符号或括号符号提供对对象属性的访问。

语法

object.property
object["property"]

如:-

for (var i = 2; i < 7; i++) {
      if (cookieJSON.Cases["mdata" + i] == undefined)
          return i;
}

更多信息在这里:点表示法与括号