var array = [{}];
var obj = {
name: "Fred X",
age: 20
}
function x() {
array[1].name = "Alice";
array[1].age = 48;
}
array[0] = obj;
document.write(array[0].name + "=" + array[0].age, "<br>");
array[1] = obj;
x();
document.write(array[0].name, "=", array[0].age < br > ",array[1].name,"=",array[1].age);
我正在尝试使用一系列项目(具有属性的对象)构建购物车,但它无法正常工作。上面的代码说明了问题:当我尝试读出购物车时,所有商品都显示为最后添加的商品。 我没有到这里来的是什么? 提前谢谢......
答案 0 :(得分:0)
您应该检查@Satpal's link,因为它说明了您遇到的问题:参考问题。
当您创建变量时,请说obj
,每当您更改它的值时,无论您在何处使用它,都会发生变化。
尝试使用功能在购物车中添加内容:
function addItemToCart(name, age) {
array.push({
name: name,
age: age
});
}
addItemToCart("Alice", 48);
array.forEach(cartItem => {
document.write(cartItem .name + "=" + cartItem .age, "<br>");
});
您的代码将比您的代码更好用。
另外,你的最后一行有一个拼写错误。
答案 1 :(得分:0)
您好我已更新您的代码, 你最后一行内有额外的“, 我已经更新了你的代码, 请在下面查看,
var array = [{}];
var obj={
name:"Fred X",
age:20
}
function x(){
array[1].name = "Alice";
array[1].age = 48;
}
array[0]=obj;
document.write(array[0].name+"="+array[0].age,"<br>");
array[1]=obj;
x();
document.write(array[0].name,"=",array[0].age,"<br>",array[1].name+"="+array[1].age);
还有一个工作的代码笔,用于澄清
https://codepen.io/shohil06/pen/ZJzEJj
希望它有所帮助,
谢谢
答案 2 :(得分:0)
var array = [{}];
var obj = {
name: "Fred X",
age: 20
}
function x() {
array[1].name = "Alice";
array[1].age = 48;
}
array[0] = obj;
console.log(array[0].name + "=" + array[0].age, "\n");
array[1] = obj;
x();
console.log(array[0].name,"=",array[0].age,"\n",array[1].name+"="+array[1].age);
检查一下。