JS这段数据push进去的变量为什么成了字符串?

例子:

var data3 = [];
var name = '哈哈';
var num1 = '1.333333333';
var num2 = '222222222';
data3.push({
  name:[num1, num2]
})
console.log(data3)

打印出来:

[Object {
  name: ["1.333333333", "222222222"]
}]

那个name不应该是哈哈吗?
我想要的是哈哈,怎么正确push

阅读 4.5k
3 个回答
data3.push({
  [name]:[num1, num2]
})

ES6的Map数据格式出现前,js对象的键只能是字符串,当你直接写字符时对象会把它解析为字符串,所以需要[]标识一下。

var data3 = [];
var name = '哈哈';
var num1 = '1.333333333';
var num2 = '222222222';
data3.push({
  [name]:[num1, num2]
})
console.log(JSON.stringify(data3));

对象键名是变量的时候要使用方括号运算符才行啦
否则解释器就会把它当作是字符串。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题