添加变量名而不是其值,javascript
我在向JavaScript对象添加值时遇到了一个问题:要添加的值是一对添加变量名而不是其值,javascript,javascript,jquery,json,Javascript,Jquery,Json,我在向JavaScript对象添加值时遇到了一个问题:要添加的值是一对键、值。以下是示例: //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
键、值。以下是示例:
//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}
添加新元素时,它会将变量名添加为键,即category,而不是其中的值(“somecat”)
有没有办法使用json、jquery或javascript本身来做到这一点
有没有办法在变量内赋值?没有办法使用变量在对象文字符号内定义属性名称。它接受标识符或字符串,但两者都标识属性名,而不是变量
必须创建对象,然后添加属性:
if(!cart[user]) {
cart[user] = {};
}
cart[user][category] = rating;
您将需要更换
{category:rating}
与
创建对象文字时,键必须是字符串,因此在代码中它将是“category”。如果您这样做:
var rating="1"
var category="somecat";
var user="user1";
if( !cart[user] ) {
cart[user]={};
}
cart[user][category]=rating;
将不存在的用户初始化为空对象,然后添加类别。谢谢!:)意味着它将所有内容都视为属性名称。(文字)。很高兴知道。谢谢,我还有一个问题。购物车[用户]={类别:评级};在这种情况下,评级的价值会增加,即:“1”。这是怎么回事?因为这是一个值,而不是属性名。
var rating="1"
var category="somecat";
var user="user1";
if( !cart[user] ) {
cart[user]={};
}
cart[user][category]=rating;