ก่อนที่ฉันจะแนะนำข้อความหลักฉันจะเพิ่มความรู้ให้คุณ:
อัลกอริทึมผลิตภัณฑ์ JS Cartesian
สร้างผลิตภัณฑ์คาร์ทีเซียนจากวัตถุหรืออาร์เรย์ที่กำหนด
// ฟังก์ชั่นการรวมกันของผลิตภัณฑ์คาร์ทีเซียนเดส์การ์ต (รายการ) {// prevent index; นับจำนวนตัวชี้นับ var point = {}; var result = []; var pindex = null; var tempcount = 0; var temp = []; // สร้างวัตถุตัวชี้ตาม {'parent': pindex, 'count': 0} pindex = index;}} // โครงสร้างข้อมูลมิติเดียวส่งคืนโดยตรงถ้า (pindex == null) {return list;} // การสร้างผลิตภัณฑ์คาร์ทีเซียนแบบไดนามิกในขณะที่ (จริง) {สำหรับ (ดัชนี จุด [ดัชนี] ['count']; temp.push (รายการ [index] [tempcount]);} // กดลงในผลอาเรย์ผลลัพธ์ push (temp); temp = []; // ตรวจสอบปัญหาค่าตัวชี้สูงสุดในขณะที่ (จริง) {ถ้า (index] จุด [ดัชนี] ['parent']; ถ้า (pindex == null) {ผลตอบแทนผลลัพธ์;} // กำหนดพาเรนโอเคอัลกอริทึม JS Cartesian Generation เป็นเพียงการวางรากฐานสำหรับข้อความต่อไปนี้ ฉันจะไม่พูดอะไรมากดังนั้นฉันจะกลับไปที่จุด
1. คำอธิบายข้อกำหนด
ฟังก์ชั่นการเปิดตัวผลิตภัณฑ์ของเว็บไซต์อีคอมเมิร์ซคล้ายกับหน้ารายละเอียดผลิตภัณฑ์ของ JD.com ดังที่แสดงในรูปด้านล่างฟังก์ชั่นที่เลือกได้นั้นสร้างขึ้นในพื้นหลังได้อย่างไร ในความเป็นจริง iPhone 6 ที่คุณเห็นไม่ได้เป็นเพียงผลิตภัณฑ์เมื่อมีการเผยแพร่ แต่หลายอย่างเนื่องจากราคาของ iPhone 6 ที่เลือกแต่ละตัวนั้นแตกต่างกันดังนั้นเมื่อเผยแพร่ผลิตภัณฑ์รายการเสริมเหล่านี้จะถูกเลือกจากคุณลักษณะและค่าแอตทริบิวต์ ปัญหาคือจำนวนแอตทริบิวต์ที่เลือกในระหว่างการตีพิมพ์นั้นแตกต่างกันและค่าแอตทริบิวต์ก็แตกต่างกันเช่นกัน จากนั้นจำนวนผลิตภัณฑ์ที่สร้างขึ้นจะรวมอยู่กับแอตทริบิวต์และค่าแอตทริบิวต์
2. อัปโหลดรหัสโดยตรง
<script>/*** ประเภทแอตทริบิวต์ผลิตภัณฑ์*จำนวนแอตทริบิวต์ไม่แน่นอน*/var spec = function (specname, speciTems) {this.specName = specname; // ชื่อแอตทริบิวต์ this.specitems = speciTems; // ค่าตัวเลขคืออาร์เรย์จำนวนอาร์เรย์ไม่แน่นอน} var result = []; // รวมกันเป็นชุดผลิตภัณฑ์/*** เผยแพร่แอตทริบิวต์ที่เลือกสำหรับผลิตภัณฑ์ [{specname: 'ความจุ', speciTems: ['16G', '64G', '128G']}, {specname: 'color', speciTems: ['Top Gold', 'Silver', 'Black', 'Pink'], {specname: 'Network' ปัจจุบัน) {ถ้า (index <selectspec.length - 1) {var speciTem = selectSpec [index]; var keya = speciTem.SpecName; var items = speciTem.specitems; if (items.length == 0) {run (index+1, current);} สำหรับ (var i = 0; {}; newMap = $ .extend (newMap, current); newMap [keya] = รายการ [i]; run (ดัชนี + 1, newMap);}} else ถ้า (index == selectspec.length - 1) {var speciTem = selectSpec [index]; vara specitem.specitems; if (items.length == 0) {result.push (ปัจจุบัน);} สำหรับ (var i = 0; i <items.length; i ++) {ถ้า (! รายการ [i]) ต่อ; var newMap = {}; newMap = $ รายการ [i]; result.push (newMap);}}} รวม (0, {}); console.info (ผลลัพธ์);/** รวมกันเป็นชุดผลิตภัณฑ์ * [วัตถุ {ความจุ = "16g", color = "tulujin", เครือข่าย = "Universal"} Object {CAMAINATION = "16G", color = "大天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天天� Object {ความจุ =" 16G ", color =" Black ", Network =" Telecom "}, * Object {ความจุ =" 16G ", color =" Pink ", Network =" Unicom "}, * Object Network = "Telecom"}, * Object {CAMAINGE = "64G", color = "Telecom"}, * Object {ความจุ = "64G", color = "Telecom"}, * วัตถุ {ความจุ = "64g", color = "Gold Gold", Network = "Telecom"}, * ความจุ = "64g", color = "silver", network = "mobile"}, * object {cacease = "64g", color = "silver", network = "telecom"}, * object {ความจุ = "64g", color = "black", network = "unicom"} color = "black", network = "telecom"}, * object {cacease = "64g", color = "black", network = "telecom"}, * object {ความจุ = "64g", color = "pink", network = "unicom"} Network = "Telecom"}, * Object {CAMAINGE = "128G", color = "Telecom"}, * Object {ความจุ = "128G", color = "Telecom"}, * วัตถุ {ความจุ = "128G", color = "Telecom" network = "unicom"}, * object {cacease = "128g", color = "silver", network = "mobile"}, * object {ความสามารถ = "128g", color = "silver", network = "telecom", *, object = "128g" * Object {CAMAINE = "128G", color = "black", network = "telecom"}, * object {ความจุ = "128g", color = "pink", network = "unicom"}, * object {ความจุ = "128g", color = "Pink", Network = "Mobile"}, * network = "โทรคมนาคม"}]*/</script>ข้างต้นเป็นเนื้อหาของผลิตภัณฑ์ที่เผยแพร่โดยผลิตภัณฑ์คาร์ทีเซียนตามการใช้งาน JS ที่แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ ในเวลาเดียวกันฉันรู้สึกขอบคุณคุณมากที่ให้การสนับสนุนเว็บไซต์ Wulin Network ฉันเชื่อว่าเราจะทำได้ดีกว่านี้!