我在向 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/