繁体   English   中英

检查多个邮政编码数组(如果存在),然后找到相应的比率

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM