javascript - 添加变量名称而不是其值,javascript

标签 javascript jquery json

我在向 JavaScript 对象添加值时遇到问题:要添加的值是一个 key,value 对。这是示例:

//JavaScript object

var cart=new Object();

function add()
{
  var rating="1"
  var category="somecat";
  var user="user1";

   if(cart[user]==null)

        cart[user]={category:rating};

   else

         cart[user][category]=rating;
 }

我期望的是,如果user存在于购物车对象中,那么他的特定值应该被替换,如果user不存在,那么新的用户和类别应该加上。

用户已经存在时,代码工作正常。问题是,当我使用 cart[user]={category: rating} 添加新元素时,它会添加变量名称作为键,即类别,而不是其中的值(“somecat”)。

有没有办法使用 json、jquery 或 javascript 本身来做到这一点?

有没有办法在变量内部赋值?

最佳答案

无法使用变量在对象文字表示法中定义属性名称。它接受标识符或字符串,但两者都标识属性名称,而不是变量。

您必须创建对象然后添加属性:

if(!cart[user]) { 
   cart[user] = {};
}
cart[user][category] = rating;

关于javascript - 添加变量名称而不是其值,javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24221038/

相关文章:

javascript - Chrome 浏览器显示 NodeJS 代码计数错误

javascript - dc.js 图表中的多个画笔

javascript - 如何在不删除文本区域和复制文本的情况下复制到剪贴板

java - 使用 JSON 将 2 个参数传递给 struts2 操作

javascript - 在 json.stringify 中组合替换器和字段

javascript - highcharts 值不适合容器

javascript - 如何使用 wdio.conf.js?

javascript - JavaScript 中的大括号是什么意思?

jquery - ASP.NET MVC jQuery 自动完成 HtmlHelper

java - 如何将 JSON 映射到 Java 对象