Javascript 为什么我的对象没有被推入另一个数组?
我成功地将对象从storeItems数组推送到cartItems数组并在div中打印,但在添加更多功能后,它不再添加到数组中(通过控制台检查,长度值为0)。我没有看到什么 我只需要将用户选择的对象从storeItems数组传输到cart Items,然后它将成功打印Javascript 为什么我的对象没有被推入另一个数组?,javascript,arrays,object,Javascript,Arrays,Object,我成功地将对象从storeItems数组推送到cartItems数组并在div中打印,但在添加更多功能后,它不再添加到数组中(通过控制台检查,长度值为0)。我没有看到什么 我只需要将用户选择的对象从storeItems数组传输到cart Items,然后它将成功打印 //Function to add an item to users cart & update total function addItem() { var addId = document.getElementByI
//Function to add an item to users cart & update total
function addItem() {
var addId = document.getElementById("addItemId").value;
var itemQty = document.getElementById("addItemQty").value;
for (x = 0; x < storeItems.length; x++) {
//Calling validation functions
validateId();
validateQty();
if (addId === storeItems[x].id) {
cartItems.push(new CartItem(storeItems[x].id, storeItems[x].name, storeItems[x].price, storeItems[x].qty, storeItems[x].shippingCost));
displayCart();
}
}
console.log(cartItems);
}
//将项目添加到用户购物车并更新总计的函数
函数addItem(){
var addId=document.getElementById(“addItemId”).value;
var itemQty=document.getElementById(“addItemQty”).value;
对于(x=0;x
我只需要将用户选择的对象从storeItems数组传输到cart Items,然后它将成功打印好的,我开始,
//Function to add an item to users cart & update total
function addItem() {
var addId = document.getElementById("addItemId").value;
var itemQty = document.getElementById("addItemQty").value;
for (x = 0; x < storeItems.length; x++) {
//Calling validation functions
validateId();
validateQty();
if (addId === storeItems[x].id) {
cartItems.push(new CartItem(storeItems[x].id, storeItems[x].name, storeItems[x].price, storeItems[x].qty, storeItems[x].shippingCost));
displayCart();
}
}
console.log(cartItems);
}
我对你的代码做了一些修改,使它对我有用
看看我的代码
var storeItems = [1,2,3,4,5,6]
function addItem(addId, itemQty) {
function addItem(addId, itemQty) {
for (x = 0; x < storeItems.length; x++) {
//Calling validation functions
if (addId === storeItems[x]) {
cartItems.push(x);
}
}
console.log(cartItems);
}
addItem(6);
调试此条件。这可能对你有帮助 在与值和文本输入进行比较时,请确保使用了正确的比较运算符。无论
type=”“
值设置为什么,文本输入都将作为字符串返回
因此,在将输入与实际数据进行比较时,请执行以下操作之一:
- 使用
而不是=
忽略/跳过类型比较=
- 将输入值强制转换为应该的类型,然后可以使用
=
parseInt(myInput)==mynonput
newdate(myInput.getTime()==myNonInput.getTime()
myInput==myNonInput.toString()
- 等等
for(var x=0;x
是否执行循环?是否看到任何错误?您的addId
是否与storeItems[x]相同.id
按类型和值无错误,这正是让我恼火的地方,我在盲目地尝试一些东西,@andy很好地观察到了正确性,但仍然没有success@Justinas它们必须匹配吗?我应该将函数中的变量声明为“id”吗这就是构造器中的内容,id
可能在一个位置是字符串,而在另一个位置是数字,并且您使用的是与==
的类型比较,而应该使用=
的非类型比较,或者将值强制转换为同一类型?