[英]Check more than one array of zipcodes if exists then find corresponding rate
我正在用液体 (Shopify) 和 javascript 开发一个主题。 我有三组有效的邮政编码,它们都有相应的运费。 此数据来自 Shopify 主题部分设置。
这是 json 输出中的样子:
"zip-validator-rate-zone1": 10,
"zip-validator-zipcodes-zone1": "37201, 37203, 37204, 37220",
"zip-validator-rate-zone2": 15,
"zip-validator-zipcodes-zone2": "37205, 37206, 37207, 37208, 37209, 37210, 37211, 37212, 37214, 37215, 37216, 37217, 37218, 37219, 37221, 37064, 37067, 37069",
"zip-validator-rate-zone3": 20,
"zip-validator-zipcodes-zone3": "37027",
用户将输入一个邮政编码,我需要检查所有这三个数组以查看邮政编码是否有效,然后我需要获得适用于该邮政编码的相应费率。 如果不创建一堆变量,我无法弄清楚如何优雅地做到这一点。
由于确切的输入数组不清楚,我假设这 3 条记录作为对象存在于如下数组中。
let zoneArray = [{ "zip-validator-rate-zone1": 10, "zip-validator-zipcodes-zone1": "37201, 37203, 37204, 37220", }, { "zip-validator-rate-zone2": 15, "zip-validator-zipcodes-zone2": "37205, 37206, 37207, 37208, 37209, 37210, 37211, 37212, 37214, 37215, 37216, 37217, 37218, 37219, 37221, 37064, 37067, 37069", }, { "zip-validator-rate-zone3": 20, "zip-validator-zipcodes-zone3": "37027" } ] function getZoneRateByZipCode(code) { return zoneArray.map((d, i) => d['zip-validator-zipcodes-zone' + (i + 1)].split(', ').indexOf(code) > -1 ? d['zip-validator-rate-zone' + (i + 1)] : undefined).find(v => !!v) } console.log(getZoneRateByZipCode('37203')) console.log(getZoneRateByZipCode('37069')) console.log(getZoneRateByZipCode('37027'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.