我有一个表格的HTML文件来填写一个人来接受订单。我有一个全局数组来存储对象。这些对象包含添加到订单的项目的名称,价格和数量。将对象插入全局数组?
<button type="button" onclick="addToOrder('app2-amount', 'House Salad', '6')">+</button>
这是调用addToOrder()的地方。
而且功能:
var orderArray = [];
function addToOrder(id, nameIn, priceIn){
if (loggedIn == true){
var quantityIn = document.getElementById(id).value;
var totalForThisItem = priceIn*quantityIn;
var menuObject = {
name: nameIn,
price: totalForThisItem,
quantity: quantityIn
};
// Next we must perform a check to see if an object with the same name already exists in the order
// If it does exist, replace it with this new object.
if (orderArray.length == 0){
orderArray.push(menuObject);
}
else{
orderArray.forEach(function (item) {
if (item.name == menuObject.name){
item = menuObject;
}
else{
orderArray.push(menuObject);
}
});
}
console.log("dabs " + orderArray.toString());
}
// If user is not logged in:
else{
console.log("You are not logged in. Please log in to use this feature.");
}
console.log(menuObject);
}
当我打印menuObject,我认为这将是超出范围,删除。我将它插入到一个全局变量中,我认为它正在把我搞砸。
当我开始将不同的菜单项放入数组时,会发生一些奇怪的事情。在一个案例中,每增加一个新闻,它就会增加3,6,12,24等等。有趣,但我很沮丧。
这里会发生什么?
'当我打印menuObject时,我认为它会超出范围,删除'因为你打印它的功能(最后),它还没有超出范围。除此之外,你的问题不清楚你的问题究竟是什么?将一些示例/场景与数据进行解释。 – TheUknown
当我将不同的菜单项添加到列表中时,会出现奇怪的现象。 我也很习惯Java编码,我没有意识到它没有超出函数的范围(认为最后一个括号是类结尾)。 但它超出了范围。这是否意味着什么? – kaleoh
尝试将'item = menuObject;'改为'item.name = menuObject.name; item.price = menuObject.price; item.quantity = menuObject.quantity'或者直接插入到数组中 – TheUknown