如何为商品随机推荐函数添加参数(课程作业需求)
问题修复与参数化改造方案
先修正你原代码里的逻辑错误,再完成参数化改造,让函数符合课程要求:
原代码核心问题
- 缺货判断条件错误:用字符串
"recs1"和"J15Watch"做比较,永远不会触发缺货提示,应该判断随机选中的商品是否为J15Watch。 - 冗余的for循环:那段循环只是把
product赋值为数组最后一个元素,没有实际作用。 - 硬编码数据:商品列表、标签ID都写死在函数内部,无法复用,不符合参数化要求。
参数化改造后的代码
// 将商品列表、推荐标签ID、缺货标签ID作为参数传入 function updateScreen(productList, targetRecId, oosLabelId) { // 随机选中一个商品 var index = randomNumber(0, productList.length - 1); var selectedProduct = productList[index]; // 更新推荐标签内容 setText(targetRecId, selectedProduct); // 判断是否缺货并更新对应标签 if (selectedProduct === "J15Watch") { setText(oosLabelId, "Out Of stock"); } else { // 选中其他商品时清空缺货提示 setText(oosLabelId, ""); } } // 调用时传入参数 onEvent("rec1", "click", function() { const products = ["J15Watch", "COCO Parfum", "Chatutche brush", "New 2023 Collection"]; updateScreen(products, "recs1", "oosLabel"); });
参数化说明
productList:传入商品列表数组,让函数可以适配不同的商品集合,无需修改函数内部代码。targetRecId:传入显示推荐商品的标签ID,函数能灵活控制内容显示到不同标签上。oosLabelId:传入缺货提示的标签ID,提升函数的复用性。
改造后函数逻辑更清晰,既满足课程对参数使用的要求,也修复了原代码的逻辑错误——现在选中J15Watch时会正确显示缺货提示,选其他商品则清空提示。
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

