js数组push对象时将变量名作为属性名输出的问题

var dbname = $dbs[i].split(":")[0];
var count = $dbs[i].split(":")[1];
var obj = {dbname: count};
console.log(obj);

为什么输出是{dbname: '14'}

删除

重试

复制

这段代码的输出结果{dbname: '14'} 是因为它通过字符串的 split() 方法将 $dbs[i] 字符串按照 : 分割成了两个元素的数组,并将第一个元素赋值给变量 dbname,第二个元素赋值给变量 count。然后,创建了一个对象 obj,其中 dbname 属性的值为 count,也就是'14'

因此,最终输出结果 {dbname: '14'}

2023/6/12 13:50:46

但是dbname不是变量名吗,为什么会输出变量名而不是变量的值

删除

重试

复制

您对 obj 对象中的 dbname 属性有一些误解。这里的 dbname 并不是一个变量名,而是一个对象属性名。当您在创建 obj 对象时,通过 {} 对象字面量语法来定义了一个对象字面量,该对象字面量中包含一个 dbname 属性名和一个值 count

在 JavaScript 中,可以通过使用点标记法(.)或中括号标记法([])来访问对象属性。因此,当您在控制台中打印 obj 时,控制台会将对象中的属性名("dbname")和属性值("14")一并输出,以表示该对象的内容。

2023/6/12 13:51:19

那我要让dbname这个变量的值作为对象属性名应该怎么做

删除

重试

复制

如果您想要使用 dbname 变量的值作为对象的属性名,可以使用计算属性名。计算属性名使用方括号([])来定义对象的属性名,可以动态地指定属性名。

例如,您可以将 obj 对象定义如下:

var dbname = $dbs[i].split(":")[0];
var count = $dbs[i].split(":")[1];
var obj = {[dbname]: count};
console.log(obj);

这将创建一个包含一个属性的对象,该属性的属性名将使用 dbname 变量的值动态计算得出,并将该属性名的值设置为 count。现在 obj 对象将包含 {<dbname_value>: <count_value>} 的属性,其中 <dbname_value> 是变量 dbname 的值,<count_value> 是变量 count 的值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值