javascript - 求助关于实现购物车数组的问题!!!!!!
怪我咯
怪我咯 2017-04-11 11:03:37
[JavaScript讨论组]

每样商品有id, title, price, 每点击一次购买我就将其加入数组,但是我想根据Id判断,当重复加入一件产品到购物车的时候,将相同的产品加入一个二维数组,怎么写呢?

[
    [
        {鸡腿},{鸡腿},{鸡腿},{鸡腿}
    ],
    [
        {狗腿},{狗腿},{狗腿}
    ],
    [
        {猫咪},{猫咪},{猫咪},{猫咪},{猫咪},{猫咪}
    ]
]




谢谢各位,确实我这种思路确实很辣鸡,感谢你们的建议!

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
阿神

上面的朋友说的没错,你的这种思路本身不可取。二维数组里面全是一样的东西。。有点坑。
这种格式好点,参考一下

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:'狗腿子'});

这只是参考,不提倡

PHP中文网

不建议这么写,购物车的数据结构应该存的是商品的id和数量(假设这里商品id就是名字)

{
    "鸡腿": 4,
    "狗腿": 3,
    "猫咪": 6
}

具体实现的时候,购物车物品的增减,只要对后面这个数字进行加减就可以了

阿神

你这思路不对啊 , 上面那个说的对 购物车主体应该是$a = ['id'=>number] ,然后价格和名称应该是另外一个数组 $b = ['id'=>['name'=>name,'price'=>price]],总价格就是 $totalPrice = $a['id']*$b['id']['price']

PHP中文网

同意楼上观点,购物车内的东西应该是个总体,但是价格个人觉得不应该存储到购物车数组中,因为你加入时候的价格和付款时候的价格不一定是相同的。存储的应该是唯一标识符id和数量number,你如果存储title的话,价格price,如果商家改了名字或者价格,你的设计该怎么处理呢!

$shoppingCart = [
    '101' => 4,//鸡腿
    '102' => 5,//狗腿
    '103' => 6//鸭腿
];
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号