javascript - 如何使用计数器打破循环
问题描述
寻找可能使用 for 循环的逻辑来遍历使用 Shopify 的订购系统的订单。订单 ID 按顺序输入,因为我们希望根据订单号分配取货地点。
例如,前 100 个订单将取货位置设置为位置 A,接下来的 100 个订单将设置为位置 B,依此类推。但是一旦我们达到 500 个订单,我们想从位置 A 重新开始,然后循环遍历这些位置。在订单停止之前,这个循环不会结束。
所有订单都在一个中心位置准备好并被派送到相应的位置。一旦在网站上下订单,就会创建 OrderID,因此我们希望在最终订单状态页面上显示取货地点。
如果我能提供澄清,请告诉我。
我可以通过 If 语句通过订单 ID 的静态分配来实现这个逻辑,当然这是不可扩展的,因为我们不知道我们将获得多少订单。
<script>
var orderId = {{ order_number }};
if (orderId > 100) {
Shopify.Checkout.OrderStatus.addContentBox(
'<h3> Pickup Location A</h3>'
)}
else {
Shopify.Checkout.OrderStatus.addContentBox(
'<h2>Pickup Location</h2>'
)}
</script>
解决方案
这样的事情怎么样?前 100 个订单转到A
,第二个 100 到B
,...,第五个 100 到E
然后开始循环(第六个 100 转到A
,第七个 100 转到B
,...)。
const orderId = prompt('Enter an order number'); //TODO: set to actual order number
const pickupLocations = [
['<h3>Pickup Location A</h3>', '<img src="https://dummyimage.com/30&text=A"></img>'],
['<h3>Pickup Location B</h3>', '<img src="https://dummyimage.com/30&text=B"></img>'],
['<h3>Pickup Location C</h3>', '<img src="https://dummyimage.com/30&text=C"></img>'],
['<h3>Pickup Location D</h3>', '<img src="https://dummyimage.com/30&text=D"></img>'],
['<h3>Pickup Location E</h3>', '<img src="https://dummyimage.com/30&text=E"></img>']
];
const pickupIndex = Math.floor(orderId/100) % pickupLocations.length;
//TODO: comment out console.log() in favor of next line
console.log(...pickupLocations[pickupIndex]);
//Shopify.Checkout.OrderStatus.addContentBox(...pickupLocations[pickupIndex]);
推荐阅读
- php - 共享内存函数
- java - OpenState API v1 不返回任何委员会
- javascript - 部分视图不显示验证消息
- c# - .NET MVC,任务永远不会进入状态完成
- angular - 角度检查日期在 Typescript 中有效
- python - 缺少 1 个必需的位置参数 Tkinter 库
- node.js - 检查hapijs中的图像分辨率
- firebase - 对 Firestore 的经过身份验证的 HTTP POST 调用
- python - - 不支持的操作数类型:“列表”和“列表”;用numpy数组解决?
- json - Render :json with include 不渲染具有不同模型名称的表数据