Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript—尝试在循环之后将数组对象值添加到一起_Javascript_Jquery_Arrays_Shopping Cart_Checkout - Fatal编程技术网

Javascript—尝试在循环之后将数组对象值添加到一起

Javascript—尝试在循环之后将数组对象值添加到一起,javascript,jquery,arrays,shopping-cart,checkout,Javascript,Jquery,Arrays,Shopping Cart,Checkout,我正在尝试做一个小型的JavaScript签出练习。用户将两个或多个项目添加到一起(复选框)选项,项目的价格总计后返回。由于某些原因,我无法将数组对象的值添加到一起。我的代码中的所有其他内容都只适用于第1部分。有人能帮我吗?我的代码如下: JavaScript //此数组对象保存用户从中选择的项目名称和价格 var shoppingItems={ “不锈钢锅”:29.99, “迷你不锈钢搅拌机”:19.99, “厨房毛巾套装”:7.99, “大茶色咖啡杯”:5.49, “5个圆形餐盘套装”:5

我正在尝试做一个小型的JavaScript签出练习。用户将两个或多个项目添加到一起(
复选框
)选项,项目的价格总计后返回。由于某些原因,我无法将数组对象的值添加到一起。我的代码中的所有其他内容都只适用于第1部分。有人能帮我吗?我的代码如下:

JavaScript

//此数组对象保存用户从中选择的项目名称和价格
var shoppingItems={
“不锈钢锅”:29.99,
“迷你不锈钢搅拌机”:19.99,
“厨房毛巾套装”:7.99,
“大茶色咖啡杯”:5.49,
“5个圆形餐盘套装”:5.99,
“盐和胡椒瓶套装”:1.99,
“蓝色大扫帚”:3.98,
“粉红肥皂碟”:2.50,
“银色浴室垃圾桶”:6.99,
“丝绸黑色浴袍”:9.99,
};
var itemsSelectedValues=[];
//这是将向其中添加复选框值的空数组
var合计=0;
//这是保存项目总数的变量
checkedItems的函数列表(catalogToLookFrom){
var yourItemsPurchased=$(“输入:复选框:选中”);
对于(i=0;i

百货商店商品

不锈钢烹饪锅-29.99美元
迷你不锈钢搅拌机-19.99美元
厨房毛巾套装-7.99美元
大茶色咖啡杯-5.49美元
5个圆形餐盘-5.99美元
盐和胡椒瓶套装-1.99美元
大型蓝色扫帚-3.98美元
粉色肥皂盘-2.5美元
银色浴室垃圾桶-6.99美元
丝绸黑色浴室长袍-9.99美元

提交


您可以在这里使用不同的、更清晰的逻辑

使用jQuery选择元素后,可以使用
.each()
迭代这些对象,其中
上下文将直接是元素

另外,您不需要包含值的数组,只需在
each()
函数中求和,将所选值传递到
shoppingItems
数组中,以检索$value的方式。在迭代结束时,您将获得总值

正如我在回答的评论中所说,一旦在jQuery中只选择了被选中的,就不需要检查
this.checked===true

请看一看:

var shoppingItems={
“不锈钢锅”:29.99,
“迷你不锈钢搅拌机”:19.99,
“厨房毛巾套装”:7.99,
“大茶色咖啡杯”:5.49,
“5个圆形餐盘套装”:5.99,
“盐和胡椒瓶套装”:1.99,
“蓝色大扫帚”:3.98,
“粉红肥皂碟”:2.50,
“银色浴室垃圾桶”:6.99,
“丝绸黑色浴袍”:9.99,
};
checkedItems的函数列表(catalogToLookFrom){
var yourItemsPurchased=$(“输入:复选框:选中”);
var totalValue=0;
yourItemsPurchased.each(函数(){
totalValue+=parseFloat(shoppingItems[this.value]);
}) 
console.log(totalValue);
返回总值;
}
函数getOrderTotal(){
检查清单(购物物品);
}

百货商店商品

不锈钢烹饪锅-29.99美元
迷你不锈钢搅拌机-19.99美元
厨房毛巾套装-7.99美元
大茶色咖啡杯-5.49美元
5个圆形餐盘-5.99美元
盐和胡椒瓶套装-1.99美元
大型蓝色扫帚-3.98美元
粉色肥皂盘-2.5美元
银色浴室垃圾桶-6.99美元
丝绸黑色浴室长袍-9.99美元

提交


您可以在这里使用不同的、更清晰的逻辑

使用jQuery选择元素后,可以使用
.each()
迭代这些对象,其中
上下文将直接是元素

另外,您不需要包含值的数组,只需在
each()
函数中求和,将所选值传递到
shoppingItems
数组中,以检索$value的方式。在迭代结束时,您将获得总值

正如我在回答的评论中所说,一旦在jQuery中只选择了被选中的,就不需要检查
this.checked===true

请看一看:

var shoppingItems={
“不锈钢锅”:29.99,
“迷你不锈钢搅拌机”:19.99,
“厨房毛巾套装”:7.99,
“大茶色咖啡杯”:5.49,
“5个圆形餐盘套装”:5.99,
“盐和胡椒瓶套装”:1.99,
“蓝色大扫帚”:3.98,
“粉红肥皂碟”:2.50,
“银色浴室垃圾桶”:6.99,
“丝绸黑色浴袍”:9.99,
};
checkedItems的函数列表(catalogToLookFrom){
var yourItemsPurchased=$(“输入:复选框:选中”);
var totalValue=0;
yourItemsPurchased.each(函数(){
总值+=p
$("input:checkbox:checked").toArray().reduce((a, e) => a + catalog[e.value], 0)