cari
Rumahpembangunan bahagian belakangtutorial phpjavascript - 求助关于实现购物车数组的问题!!!!!!

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

<code>[
    [
        {鸡腿},{鸡腿},{鸡腿},{鸡腿}
    ],
    [
        {狗腿},{狗腿},{狗腿}
    ],
    [
        {猫咪},{猫咪},{猫咪},{猫咪},{猫咪},{猫咪}
    ]
]




</code>

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

回复内容:

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

<code>[
    [
        {鸡腿},{鸡腿},{鸡腿},{鸡腿}
    ],
    [
        {狗腿},{狗腿},{狗腿}
    ],
    [
        {猫咪},{猫咪},{猫咪},{猫咪},{猫咪},{猫咪}
    ]
]




</code>

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

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

<code>var cart = {
    'id01':{n:'鸡腿', count: 4},
    'id02':{n:'鸭腿', count: 3},
    'id03':{n:'猪腿', count: 2},
    'id04':{n:'狗腿子', count: 1}
}
</code>

不过,如果你非要这样子做

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

这只是参考,不提倡

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

<code>{
    "鸡腿": 4,
    "狗腿": 3,
    "猫咪": 6
}
</code>

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

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

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

<code>$shoppingCart = [
    '101' => 4,//鸡腿
    '102' => 5,//狗腿
    '103' => 6//鸭腿
];</code>

首先谢邀。

其实这个问题我昨天都看到这个问题了,我自己也认为楼上几位回答的不错。但见题主又邀请了我,只能发表下我的看法,当作抛砖引玉了。


其实我觉得几维数组不重要,怎么写不重要,重要的是思路。我主要对这方面做一个抛砖引玉的陈述。
其实现在这个年代吧,面向对象虽然是老生常谈的东西,但很多人仍然不太会加以运用,所以致使问题的复杂度直线上升,我们尝试以面向对象来解决这个问题试试吧:

//全局对象
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 - 求助关于实现购物车数组的问题!!!!!!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bagaimana anda mengubah suai data yang disimpan dalam sesi PHP?Bagaimana anda mengubah suai data yang disimpan dalam sesi PHP?Apr 27, 2025 am 12:23 AM

Tomodififydatainaphpsession, startTheSessionWithSsion_start (), thenuse $ _SessionToset, Modify, Orremovariables.1) startTheSession.2) setOrmodifySessionVariabelinging $ _Session.3) ReveVariablesWithunset ()

Berikan contoh menyimpan array dalam sesi PHP.Berikan contoh menyimpan array dalam sesi PHP.Apr 27, 2025 am 12:20 AM

Array boleh disimpan dalam sesi PHP. 1. Mulakan sesi dan gunakan session_start (). 2. Buat array dan simpan dalam $ _Session. 3. Dapatkan array melalui $ _Session. 4. Mengoptimumkan data sesi untuk meningkatkan prestasi.

Bagaimanakah pengumpulan sampah berfungsi untuk sesi PHP?Bagaimanakah pengumpulan sampah berfungsi untuk sesi PHP?Apr 27, 2025 am 12:19 AM

Pengumpulan sampah sesi PHP dicetuskan melalui mekanisme kebarangkalian untuk membersihkan data sesi yang telah tamat tempoh. 1) Tetapkan kebarangkalian pencetus dan kitaran hayat sesi dalam fail konfigurasi; 2) Anda boleh menggunakan tugas cron untuk mengoptimumkan aplikasi beban tinggi; 3) Anda perlu mengimbangi kekerapan dan prestasi pengumpulan sampah untuk mengelakkan kehilangan data.

Bagaimana anda dapat mengesan aktiviti sesi di PHP?Bagaimana anda dapat mengesan aktiviti sesi di PHP?Apr 27, 2025 am 12:10 AM

Mengesan aktiviti sesi pengguna dalam PHP dilaksanakan melalui pengurusan sesi. 1) Gunakan session_start () untuk memulakan sesi. 2) Simpan dan data akses melalui array $ _Session. 3) Hubungi session_destroy () untuk mengakhiri sesi. Penjejakan sesi digunakan untuk analisis tingkah laku pengguna, pemantauan keselamatan, dan pengoptimuman prestasi.

Bagaimana anda boleh menggunakan pangkalan data untuk menyimpan data sesi PHP?Bagaimana anda boleh menggunakan pangkalan data untuk menyimpan data sesi PHP?Apr 27, 2025 am 12:02 AM

Menggunakan pangkalan data untuk menyimpan data sesi PHP dapat meningkatkan prestasi dan skalabilitas. 1) Konfigurasi MySQL untuk menyimpan data sesi: Sediakan pemproses sesi dalam kod php.ini atau php. 2) Melaksanakan pemproses sesi tersuai: Tentukan fungsi terbuka, tutup, baca, tulis dan lain -lain untuk berinteraksi dengan pangkalan data. 3) Pengoptimuman dan amalan terbaik: Gunakan pengindeksan, caching, pemampatan data dan penyimpanan yang diedarkan untuk meningkatkan prestasi.

Terangkan konsep sesi PHP secara ringkas.Terangkan konsep sesi PHP secara ringkas.Apr 26, 2025 am 12:09 AM

PhpSSsionsTrackUserDataacrossmultiplePagerequestSuseUniquidStoredinacookie.here'ShoWtomanAgeThemEffectely: 1) startAnSessionWithSession_Start () danStoRedatain $ _Session.2)

Bagaimana anda melengkapkan semua nilai yang disimpan dalam sesi PHP?Bagaimana anda melengkapkan semua nilai yang disimpan dalam sesi PHP?Apr 26, 2025 am 12:06 AM

Dalam PHP, iterating melalui data sesi dapat dicapai melalui langkah -langkah berikut: 1. Mulakan sesi menggunakan session_start (). 2. ITERATE melalui gelung foreach melalui semua pasangan nilai utama dalam array $ _Session. 3. Apabila memproses struktur data kompleks, gunakan fungsi is_array () atau is_object () dan gunakan print_r () untuk mengeluarkan maklumat terperinci. 4. Apabila mengoptimumkan traversal, paging boleh digunakan untuk mengelakkan memproses sejumlah besar data pada satu masa. Ini akan membantu anda mengurus dan menggunakan data sesi PHP dengan lebih cekap dalam projek sebenar anda.

Terangkan cara menggunakan sesi untuk pengesahan pengguna.Terangkan cara menggunakan sesi untuk pengesahan pengguna.Apr 26, 2025 am 12:04 AM

Sesi ini menyedari pengesahan pengguna melalui mekanisme pengurusan negara pelayan. 1) Penciptaan sesi dan penjanaan ID unik, 2) IDS diluluskan melalui kuki, 3) kedai pelayan dan mengakses data sesi melalui ID, 4) Pengesahan pengguna dan pengurusan status direalisasikan, meningkatkan keselamatan aplikasi dan pengalaman pengguna.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini