在Javascript中连接动态变量名称

问题描述 投票:0回答:4

在 PHP 中,您可以像这样连接变量名称

$a = 1

${'fruit_' . $a} = 'apple';

结果将导致变量的创建

$fruit_a

我该如何在 javascript 中做到这一点?

javascript variables
4个回答
17
投票

不确定您到底想要完成什么,但使用 JavaScript,您可以使用以下内容:

> var a = 1;
> var b = {};
> b['fruit_' + a] = 'apple';
> b.fruit_1
"apple"
> b['fruit_1']
"apple"

13
投票

您可以通过将变量分配给上下文来完成此操作。例如,要在浏览器上下文中创建动态命名的全局变量,您可以使用:

const a = 1
window['fruit_' + a] = 'apple'

console.log(fruit_1)

如果您位于 Node 上下文中,则可以使用

global
而不是
window
。如果您尝试在方法上下文中创建变量,则可以使用
this


0
投票

我遇到了同样的场景,然后我使用 switch case 来管理具有这样的序列号的变量列表。

var url = 'stackoverflow.com/questions/12149233/concatenate-a-dynamic/variable-name-in-javascript';
var splittedu = url.substring(url.lastIndexOf('/')+1);
var subsections = splittedu.split("/");

for(let i=1; i<subsections.length-1; i++){
  switch(i) {
    case 1:
      subsection1 = subsections[i];
      break;
    case 2:
      subsection2 = subsections[i];
      break;
    case 3:
      subsection3 = subsections[i];
      break;
    case 4:
      subsection4 = subsections[i];
      break;
 }


0
投票

您可以尝试下面的示例,首先初始化 -

let myObject = {}
let index = 5

myObject['object__' + index] = 'test';

输出将如下所示 -

console.log(myObject['object__' + index])
Output -  test

console.log(myObject.object__5)
Output -  test
© www.soinside.com 2019 - 2024. All rights reserved.