javascript-求助关于实现购物车数组的问题!!!!!!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-求助关于实现购物车数组的问题!!!!!!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2991字,纯文字阅读大概需要5分钟。
内容图文
每样商品有id, title, price, 每点击一次购买我就将其加入数组,但是我想根据Id判断,当重复加入一件产品到购物车的时候,将相同的产品加入一个二维数组,怎么写呢?[
[
{鸡腿},{鸡腿},{鸡腿},{鸡腿}
],
[
{狗腿},{狗腿},{狗腿}
],
[
{猫咪},{猫咪},{猫咪},{猫咪},{猫咪},{猫咪}
]
]
谢谢各位,确实我这种思路确实很辣鸡,感谢你们的建议!
回复内容:
每样商品有id, title, price, 每点击一次购买我就将其加入数组,但是我想根据Id判断,当重复加入一件产品到购物车的时候,将相同的产品加入一个二维数组,怎么写呢?
[
[
{鸡腿},{鸡腿},{鸡腿},{鸡腿}
],
[
{狗腿},{狗腿},{狗腿}
],
[
{猫咪},{猫咪},{猫咪},{猫咪},{猫咪},{猫咪}
]
]
谢谢各位,确实我这种思路确实很辣鸡,感谢你们的建议!
上面的朋友说的没错,你的这种思路本身不可取。二维数组里面全是一样的东西。。有点坑。
这种格式好点,参考一下
var cart = {
'id01':{n:'鸡腿', count: 4},
'id02':{n:'鸭腿', count: 3},
'id03':{n:'猪腿', count: 2},
'id04':{n:'狗腿子', count: 1}
}
不过,如果你非要这样子做
var list = [
[{n:'鸡腿'},{n:'鸡腿'},{n:'鸡腿'},{n:'鸡腿'},{n:'鸡腿'}],
[{n:'鸭腿'},{n:'鸭腿'},{n:'鸭腿'},{n:'鸭腿'}],
[{n:'猪腿'},{n:'猪腿'},{n:'猪腿'},{n:'猪腿'}]
];
function fn(o){
var inArray = false;
list.map(function(item){
if( item.indexOf(o) > -1){
inArray = true;
item.push(o);
}
});
inArray || list.push([o]);
}
fn(list[1][1]);
fn({n:'狗腿子'});
这只是参考,不提倡
不建议这么写,购物车的数据结构应该存的是商品的id和数量(假设这里商品id就是名字)
{
"鸡腿": 4,
"狗腿": 3,
"猫咪": 6
}
具体实现的时候,购物车物品的增减,只要对后面这个数字进行加减就可以了
你这思路不对啊 , 上面那个说的对 购物车主体应该是$a = ['id'=>number]
,然后价格和名称应该是另外一个数组 $b = ['id'=>['name'=>name,'price'=>price]]
,总价格就是 $totalPrice = $a['id']*$b['id']['price']
同意楼上观点,购物车内的东西应该是个总体,但是价格个人觉得不应该存储到购物车数组中,因为你加入时候的价格和付款时候的价格不一定是相同的。存储的应该是唯一标识符id和数量number,你如果存储title的话,价格price,如果商家改了名字或者价格,你的设计该怎么处理呢!
$shoppingCart = [
'101' => 4,//鸡腿
'102' => 5,//狗腿
'103' => 6//鸭腿
];
首先谢邀。
其实这个问题我昨天都看到这个问题了,我自己也认为楼上几位回答的不错。但见题主又邀请了我,只能发表下我的看法,当作抛砖引玉了。
其实我觉得几维数组不重要,怎么写不重要,重要的是思路。我主要对这方面做一个抛砖引玉的陈述。
其实现在这个年代吧,面向对象虽然是老生常谈的东西,但很多人仍然不太会加以运用,所以致使问题的复杂度直线上升,我们尝试以面向对象来解决这个问题试试吧:
//全局对象
var item_arr = {};
//操作函数
function add_(id, name, price, count) {
var item = {
id: id,
name: name,
price: price,
count: count
}
var obj = item_arr[id]
if (obj) {
item.count = obj.count + count;
}
item_arr[item.id] = item;
}
//code by rozbo ,强力免山寨
//模拟添加购物操作
add_(19, "狗腿子", 16, 20);
add_(1, "鸡腿子", 12, 2);
add_(126, "羊腿子", 6, 6);
add_(126, "羊腿子", 6, 6);
//
输出信息,计算价格
var price_totle = 0;
for (var id in item_arr) {
var item = item_arr[id];
var price_curr = item.count * item.price;
price_totle += price_curr;
console.info("当前有%s%d个,总价%d元", item.name, item.count, price_curr);
}
console.info("共计%d元,祝您购物愉快!", price_totle);
输出结果
内容总结
以上是互联网集市为您收集整理的javascript-求助关于实现购物车数组的问题!!!!!!全部内容,希望文章能够帮你解决javascript-求助关于实现购物车数组的问题!!!!!!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。