vue实现计算商品sku笛卡尔积(干货)

article/2025/10/3 7:44:43

在 Vue 中计算商品 SKU 的笛卡尔积,您可以按照以下步骤进行:

  1. 定义商品属性和属性值

在 Vue 组件中定义商品属性和属性值,可以使用对象或数组来表示:

// 商品属性
const attributes = {color: {name: '颜色',values: [{ name: '红色', value: 'red' },{ name: '蓝色', value: 'blue' },{ name: '绿色', value: 'green' },],},size: {name: '尺寸',values: [{ name: 'S', value: 's' },{ name: 'M', value: 'm' },{ name: 'L', value: 'l' },],},
};
  1. 计算属性值组合

使用嵌套循环来计算商品属性值的笛卡尔积,生成所有可能的属性值组合。

const attributeValues = Object.values(attributes).map(attr => attr.values);const cartesianProduct = (...arrays) => arrays.reduce((acc, curr) =>acc.flatMap(a => curr.map(c => [...a, c]))
, [[]]);const attributeCombinations = cartesianProduct(...attributeValues);

返回数据结构如图

  1. 生成 SKU 列表

使用属性值组合来生成 SKU 列表,给每个 SKU 分配一个唯一的编号。

const skuList = attributeCombinations.map((attributes, index) => ({id: index + 1,attributes: attributes.reduce((acc, attr, index) => {acc[Object.keys(attributes)[index]] = attr;return acc;}, {}),price: 0,stock: 0,
}));

在生成 SKU 列表时,您可以根据需要为每个 SKU 分配初始价格和库存数量,或者在后续的处理中动态计算。

  1. 显示商品属性和 SKU 列表

在 Vue 组件中,您可以使用 v-for 指令来显示商品属性和 SKU 列表。

<!-- 显示商品属性 -->
<div v-for="(attribute, attributeName) in attributes" :key="attributeName"><div>{{ attribute.name }}</div><div><div v-for="value in attribute.values" :key="value.value"><input type="radio" :id="`${attributeName}_${value.value}`":name="attributeName" :value="value.value"v-model="selectedAttributes[attributeName]"><label :for="`${attributeName}_${value.value}`">{{ value.name }}</label></div></div>
</div><!-- 显示 SKU 列表 -->
<table><thead><tr><th>ID</th><th v-for="attribute in Object.keys(attributes)">{{ attributes[attribute].name }}</th><th>价格</th><th>库存</th></tr></thead><tbody><tr v-for="sku in skuList" :key="sku.id"><td>{{ sku.id }}</td><td v-for="attribute in Object.keys(attributes)">{{ sku.attributes[attribute] }}</td><td>{{ sku.price }}</td><td>{{ sku.stock }}</td></tr></tbody>
</table>

http://chatgpt.dhexx.cn/article/Z6xMGvOu.shtml

相关文章

网页商品SKU(规格)选择

什么是sku 维基百科如下 最小存货单位(Stock Keeping Unit) 在连锁零售门店中有时称单品为一个SKU&#xff0c;定义为保存库存控制的最小可用单位&#xff0c;例如 例如&#xff1a; iPhone有规格有&#xff1a;颜色【红、金、黑】&#xff0c;内存大小【32g、64g、128g】 红色…

商品SKU设计

淘宝网商品SKU系统设计经验分享 PHP商城 商品模块 数据库 表设计 Refer: sc_product_categories:(product_category_id, product_category_name, product_parent_category_id, create_at){1, coin, (00 XX XX XX) 02, …

基于element组件商品sku多规格

1.sku多规格效果图 商品的sku涉及到很多动态表单&#xff0c;因为分为单规格和多规格。而每次一到写动态表单就让人头疼。所以特此记录一下&#xff0c;方便自己下次再用也帮助他人减少麻烦。闲话少叙&#xff0c;先看效果图。 上面的部分输入表单可以无视了&#xff0c;主要还…

php商品规格sku,SKU商品规格选择

SKU商品规格选择 在线demo地址 Github代码地址 可选属性实现思路 当用户点击某选项(如"黑色")时,拿到此时所有规格的选项( { color: "黑色" }) 根据商品数据、用户当前选择规格,查找匹配商品。如果找到了,就返回商品标识(商品为数组则返回数组索引 inde…

vue实现后台管理商品sku组合

本人菜鸟一个&#xff0c;但最近要写一个后台管理前端部分&#xff0c;然后在写一个商品sku组合时遇到了点问题&#xff0c;所以在这里记录一下。在网上能找到很多方法&#xff0c;也有很简单的&#xff0c;但我看好像都是有一个问题&#xff0c;就是第一次生成之后&#xff0c…

Geek-SKU 多商品sku组件支持v3、带图sku

如果您正在寻找一款支持v3、v2的多商品sku组件的话&#xff0c;那我想这款组件刚好可以满足各位的业务需求。 先来简单看一眼效果图: 一款轻量化、强大、拓展性强、可使用带图sku、可根据配置主题色自动生成相应的组件主题色的商品多规格sku&#xff0c;仅需要按照指定格式…

尚品汇_第5章_ 商品sku保存

尚品汇_第5章_ 商品sku保存 文章目录 尚品汇_第5章_ 商品sku保存一、业务介绍1.1 数据库表结构1.2 数据准备1.1 平台属性添加1.2 商品spu管理 二、保存skuInfo功能2.1 图片加载功能2.1.1 添加接口实现类2.1.2 添加控制器 2.2 销售属性2.2.1 编写接口以及实现类2.2.2 编写控制器…

js实现商品sku组合

const data [[红色,绿色,金色,青色,白色],[M,L,XL,XXL,XXXL],[男装,女装] ] var sku getSku(data)function getSku(data) {let newArr [];let delimiter "|(_##sku##_)|"; // 分隔符&#xff0c;避免sku中出现相同字符出现数据丢失情况function get(index, arr, …

java实现商品sku_jquery实现商品sku多属性选择功能(商品详情页)

SKUStock Keeping Unit(库存量单位)。即库存进出计量的基本单元&#xff0c;可以是以件&#xff0c;盒&#xff0c;托盘等为单位。 SKU是用来定价和管理库存的&#xff0c;比如一个产品有很多颜色&#xff0c;很多配置&#xff0c;每个颜色和配置的组合都会形成新的产品&#x…

商品sku 和批量编辑 js算法

这一段时间在搞商品后台的系统&#xff0c;其中关于通过商品的销售属性&#xff0c;生成SKU的处理&#xff0c;这里说明一下。 /*** 生成笛卡尔积* returns {*}*/ function descartes(array){if( array.length < 2 ) return array[0] || [];return [].reduce.call(array, fu…

laravel-admin 结合搭配商品sku

本文章基于jade 的基础上&#xff0c;完善部分功能。多谢jade提供sku方案 多个规格名&#xff0c;只显示2个添加规则值&#xff0c;保留已有的信息保存数据库后&#xff0c;json数据会自动排序 (2020-09-21 新增) Form 扩展 – 商品Sku 1.安装&#xff1a; composer requi…

商品SKU系统

如何设计库存&#xff0c;哪些库存呢&#xff1f;分类属性的库存&#xff1a;不同颜色 不同尺码的属性的库存 &#xff0c;这些就体现了商品的SKU&#xff0c;至于什么是SKU&#xff0c;自己去百度一下哈&#xff0c;所以首先我们就要设计商品Sku表以及关系表了 总体思路 1.…

java实现商品sku_商品SKU功能设计与优化

SpringBoot实战电商项目mall(30k+star)地址:github.com/macrozheng/… 摘要 原来的商品SKU设计存在着两个问题,一个是SKU表设计上面比较固化,无法扩展。另一个是当修改了商品信息之后,商品SKU的ID会发生变化,由于购物车表和订单商品表都关联了商品SKU的ID,这样就会导致匹…

sku mysql_商品sku处理

简单来说&#xff0c;一个电商类网站&#xff0c;根据平台的不同&#xff0c;商品的属性自然也就不同。 一般情况来说&#xff0c;一个商品 goods_id 对应多个 sku_id ; 设计表时我们会采取这样的方式&#xff1a; 产品表  ---   产品sku表  ---  产品基本属性表(产品属…

一个商品SKU是怎么生成的

首先说一说什么是SKU。。。。。。。自己百度去。。。 类似京东上面&#xff0c;未来人类S5这个台笔记本&#xff08;没错&#xff0c;我刚入手了&#xff09; 都是S5这个型号&#xff0c;但是因为CPU,显卡&#xff0c;内存&#xff0c;硬盘等不同&#xff0c;价格也不一样。CPU…

商品SKU

前言 最近项目开发涉及商品SKU&#xff0c;商品SKU计算原理就是笛卡尔积&#xff0c;下面对相关内容做一下总结。 一、什么是SKU SKUStock Keeping Unit(库存量单位)&#xff0c;即库存进出计量的单位&#xff0c;可以是以件&#xff0c;盒&#xff0c;托盘等为单位。针对电商而…

深度学习(二)---算法岗面试题

● 神经网络为什么用交叉熵 参考回答&#xff1a; 通过神经网络解决多分类问题时&#xff0c;最常用的一种方式就是在最后一层设置n个输出节点&#xff0c;无论在浅层神经网络还是在CNN中都是如此&#xff0c;比如&#xff0c;在AlexNet中最后的输出层有1000个节点&#xff0c…

深度学习面试题常见问答

目录 有哪些方法可以避免过拟合? 造成过拟合的原因&#xff1a; 解决办法&#xff1a; dropout在训练时和推理时的区别是什么&#xff1f; L1和L2正则化的区别&#xff1f;为什么L1比L2更稀疏&#xff1f; Batch Size大小如何影响收敛速度&#xff1f; BN的原理&#x…

机器学习、深度学习笔试题面试题整理

机器学习、深度学习笔试题 面试题总结 整理看到的内容&#xff0c;以免忘记 里面添加参考的链接&#xff0c;感谢各位大佬 感受野如何计算&#xff1f; 参考链接&#xff1a;https://blog.csdn.net/a841454735/article/details/88558906 感受野指的是一个特定的 CNN 特征&am…

深度学习(三)----算法岗面试题

● 神经网络为啥用交叉熵。 参考回答&#xff1a; 通过神经网络解决多分类问题时&#xff0c;最常用的一种方式就是在最后一层设置n个输出节点&#xff0c;无论在浅层神经网络还是在CNN中都是如此&#xff0c;比如&#xff0c;在AlexNet中最后的输出层有1000个节点&#xff0c;…