JavaScript算法教程之sku(库存量单位)详解
网络编程 2021-07-04 18:32www.168986.cn编程入门
这篇文章主要给大家介绍了JavaScript算法教程之sku(库存量单位)的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化跟着长沙网络推广一起来学习学习吧。
前言
这几天公司出的题目,之前项目中写过一个类似的,写的很猥琐(一些表现是通过频繁操作DOM实现的),借着有奖励的机会重写了一下。
sku:
SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。单品对一种商品而言,当其品牌、型号、配置、等级、花色、包装容量、单位、生产日期、保质期、用途、价格、产地等属性与其他商品存在不,可称为一个单品。
以上摘自百度百科
思路
通过字典键值对(在JavaScript中即是Object数据类型)的方式来查找对应可选属性。
难点
在于所确定属性的同级可选属性。
实现步骤
- 将拿到的数据重新组织成需要展示的数据格式、计算使用的字典数据格式、以及计算过程中需要的一些辅助数据。
- 获取页面的所选的属性。
- 根据所选属性组成查找key来查找结果。
- 将结果缓存,方便下次加速查找。
- 表现到页面。
- 确定商品。
核心代码
/ 得到结果 @param {string} key 查找关键字以;分割 @return {array} 所有可选属性数组 / getResult(key, isRealFind = true) { // 如缓存中存在,则直接返回结果 if (this.cacheData[key] && isRealFind) { this.result = this.cacheData[key]; this.resultID = this.goodsDict[key] ? this.goodsDict[key] : ''; console.log(this.resultID); return this.result; } // 继续查找 let result = ''; for (let _key in this.goodsDict) { let keyArr = key.split(';'); let _keyArr = _key.split(';'); let arr = keyArr.concat(_keyArr); arr = Array.from(new Set(arr)); if (arr.length === _keyArr.length) { result += _key; } } if (isRealFind) { // 所有可选属性 this.result = result.split(';'); let _keyArr = key.split(';'); if (_keyArr[_keyArr.length - 1] === '') { _keyArr.pop(); } for (let i = 0; i < _keyArr.length; i++) { let _arr = key.split(';'); let str = _arr.splice(i, 1); let oldResult = this.getResult(_arr.join(';'), false); let index = ''; // 获取该key所在索引 this.allKeys.forEach((item, i) => { if (item.indexOf(str.join('')) !== -1) { index = i; return; } }); this.allKeys[index].forEach(item => { if (oldResult.indexOf(item) !== -1) { this.result.push(item); } }); } this.result = Array.from(new Set(this.result)); // 缓存数据 this.cacheData[key] = this.result; this.resultID = this.goodsDict[key] ? this.goodsDict[key] : ''; console.log(this.resultID); return this.result; } else { return result; } }
(应该拉下来就能跑,页面展示用的jQuery,因为当前项目需要,换成mvvm框架页面表现会更加简单)
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对狼蚁SEO的支持。
上一篇:基于node.js制作简单爬虫教程
下一篇:详解webpack自动生成html页面
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指