前端JS实现多个数组两两三三组合,适用于商城SKU开发

 正在做这个项目,能用得上,记录一下,数组可以自己随意组合。

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
	</head>
	<body>


		<script>
			// 创建数组
			var arrGroup = [["宝石色", "蓝色"], ["6寸", "5寸", "4寸"], ["3G", "4G","6G"]];
			var arrStack = [];
			var strStack = [];
			// 开始组合数组
			function printResult(strStack, arrGroup, index) {
				if (index + 1 > arrGroup.length) {
					return;
				}
				var arr = arrGroup[index];
				var nextIndex = index + 1;
				for (var i = 0; i < arr.length; i++) {
					strStack.push(arr[i]);
					printResult(strStack, arrGroup, nextIndex);
					if (nextIndex + 1 > arrGroup.length) {
						console.log(strStack.join("_")); //打印最终结果。
					}
					if (strStack.length > 0) {
						strStack.pop();
					}
				}
			}

			/**
			 *  如果二二组合,size = 2 , 如果 三三组合 size = 3
			 */
			function print(arrStack, strStack, arrGroup, size, index) {
				if (index + 1 > arrGroup.length) {
					return;
				}
				var nextIndex = index + 1;

				arrStack.push(arrGroup[index]);

				if (arrStack.length == size) {
					printResult(strStack, arrStack, 0);
				}

				print(arrStack, strStack, arrGroup, size, nextIndex);

				if (arrStack.length > 0) {
					arrStack.pop();
				}

				print(arrStack, strStack, arrGroup, size, nextIndex);
			}

			// 二二组合
			print(arrStack, strStack, arrGroup, 3, 0);
			// //三三组合
			// print(arrStack,strStack,arrGroup,3,0);
			// var arr4 = ["e","f"];
			// var arr5 = ["g","h"];
			// arrGroup.push(arr4);
			// arrGroup.push(arr5);
			// //四四组合
			// print(arrStack,strStack,arrGroup,4,0);
		</script>
	</body>
</html>

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue是一种流行的JavaScript框架,用于构建用户界面。在使用Vue生成SKU组合table时,我们可以遵循以下步骤: 1. 定义数据结构:首先,我们需要定义用于存储SKU组合的数据结构。可以使用一个数组或对象来存储组合的属性值,如颜色、尺寸等。 2. 生成组合:通过循环嵌套的方式,生成所有可能的SKU组合。将组合的属性值存储在定义的数据结构中。 3. 渲染表格:使用Vue的数据绑定功能,在HTML模板中渲染SKU组合的表格。可以使用v-for指令来循环遍历组合数据结构,并将组合的属性值显示在表格中的对应单元格中。 4. 添加事件处理:如果需要在表格中的某个单元格中添加按钮或其他交互元素,可以使用Vue的事件绑定功能。可以监听按钮点击事件,并执行相应的操作。 5. 样式设计:通过CSS样式对表格进行美化或自定义设计,使其符合项目或产品的需求。 总之,使用Vue生成SKU组合表格的关键是定义合适的数据结构,将生成的组合存储起来,并使用Vue的数据绑定和事件绑定等功能实现表格的渲染和交互设计。这样,我们就可以方便地生成和展示SKU组合表格。 ### 回答2: Vue生成SKU组合Table是指根据一组已知的属性值,生成所有可能的SKU组合,并以Table的形式展示出来。在Vue中,可以通过使用v-for指令来实现此功能。 首先,需要定义一个包含属性和属性值的数据结构,例如: ```javascript data() { return { properties: [ { name: '颜色', values: ['红色', '蓝色', '黄色'] }, { name: '尺寸', values: ['S', 'M', 'L'] }, // 其他属性... ], skus: [] // 用于存储生成的所有SKU组合 } }, ``` 然后,可以使用嵌套的v-for指令来生成所有可能的SKU组合,并将其存储在skus数组中: ```javascript methods: { generateSKUCombinations() { const properties = this.properties; const combinations = properties.reduce((acc, property) => { if (!acc.length) { return property.values.map(value => ({ [property.name]: value })); } const newCombinations = []; property.values.forEach(value => { acc.forEach(combination => { newCombinations.push({ ...combination, [property.name]: value }); }); }); return newCombinations; }, []); this.skus = combinations; } }, ``` 最后,在Vue的模板中,可以使用表格标签和v-for指令来展示生成的SKU组合: ```html <table> <tr> <th v-for="property in properties" :key="property.name">{{ property.name }}</th> <th>SKU编码</th> </tr> <tr v-for="sku in skus" :key="sku"> <td v-for="(value, name) in sku" :key="name">{{ value }}</td> <td>{{ generateSKUCode(sku) }}</td> </tr> </table> ``` 在上述模板中,properties的v-for指令用于生成表头,skus的v-for指令用于生成表格内容。另外,可以通过generateSKUCode方法来生成每个SKU组合的编码。 以上就是使用Vue生成SKU组合Table的方法。 ### 回答3: Vue生成SKU组合table是一种常用的电商商品规格选择的实现方式。在电商网站中,商品往往有多个规格可选,比如颜色、尺寸、款式等。而SKU(Stock Keeping Unit)是指商品的唯一标识,每个SKU对应一个具体的商品。生成SKU组合table的目的是为了方便用户选择商品规格,同时展示所有可选的规格组合。 在Vue中实现这个功能,可以采用动态生成表格的方式。首先,需要在Vue的data中定义商品规格的数组,每个规格都包含一个唯一标识和多个选项。然后,在页面中使用v-for指令遍历规格数组,生成规格的选择区域。 当用户选择了某个规格的选项后,需要根据已选择的规格生成SKU组合。可以使用computed属性来实时计算已选择的规格组合。根据已选择的规格,使用v-for指令遍历SKU数组,生成SKU组合的表格。 在生成表格的同时,可以将每个SKU的唯一标识作为value绑定到checkbox或者radio的input上。这样,用户选择某个具体的SKU时,可以通过v-model获取到所选SKU的值。 最后,可以通过监听选择规格的change事件,动态更新已选择的规格组合SKU表格。当用户选择了所有的规格后,可以添加一个添加购物车或立即购买的按钮,将所选SKU加入购物车或跳转到下一步的支付页面。 这样,通过Vue生成SKU组合table,既方便用户选择商品规格,同时也提升了用户体验。同时,通过动态生成表格的方式,可以适应不同商品的规格数量和种类,具有较好的灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值