gpt4 book ai didi

javascript - NodeJS循环遍历字符串并获得准确的输出

转载 作者:行者123 更新时间:2023-11-30 14:41:12 25 4
gpt4 key购买 nike

在 NodeJS 中我有这样一个字符串

"Package=Package&Qty=1&Price=123?Package=Package Two&Qty=3&Price=702?Package=Package Three&Qty=1&Price=199?Package=Package One&Qty=4&Price=852?"

在字符串中可以看到有多个Package、Qty和Price。现在我想为每个数量和包裹发送电子邮件。因此,如果您看到包裹二,它的数量为 3。因此,在这种情况下,它将发送 3 封包含包裹和价格的电子邮件。所以基本上它会为每个数量发送带有相应包装和价格的电子邮件。

所以现在我有这样的代码

var string = "Package=Package&Qty=1&Price=123?Package=Package Two&Qty=3&Price=702?Package=Package Three&Qty=1&Price=199?Package=Package One&Qty=4&Price=852?";
var packArr = string.split('?');
var PackageName;
var PackagePrice;
for (var i = 0; i < packArr.length; i++) {
if( packArr[i].length > 0 ) {
let packageQty = packArr[i].split('&');
for (var j = 0; j < packageQty.length; j++) {
if( packageQty[j].match(/Package=/i) ) {
PackageName = packageQty[j].replace(/Package=/g,'');
console.log(PackageName);
}

if( packageQty[j].match(/Price=/i) ) {
PackagePrice = packageQty[j].replace(/Price=/g,'');
console.log(PackagePrice);
}

if (packageQty[j].match(/Qty=/i)) {
var ret = packageQty[j].replace(/Qty=/g,'');
var Pck = Number(ret);
for (var k = 1; k <= Pck; k++) {
console.log(k);
console.log('Package Name ' + PackageName);
console.log('Package Price ' + PackagePrice);
//send email with Package Name, Package Price
if( k == Pck ) {
break;
}
}
}
}
}
}

上面的代码实际上不能正常工作。它没有为每个循环正确获取包和价格。那么有人可以告诉我如何以简单的方式做到这一点吗?任何帮助和建议都将非常感激。

最佳答案

这是使用 querystring 的更简洁的方法包

const string = "Package=Package&Qty=1&Price=123?Package=Package Two&Qty=3&Price=702?Package=Package Three&Qty=1&Price=199?Package=Package One&Qty=4&Price=852?";

const qs = require('querystring');

// We split the string into multiple valid query strings.
// We strip the empty item due to the '?' at the end using .filter(Boolean)
const items = string.split('?').filter(Boolean);

// We loop through each group
for(const query of items) {
// Parse the query string of each group
const { Package, Qty, Price } = qs.parse(query);

for(let i = 0; i < Number(Qty); i++) {
// We send the email here <Qty> times.
console.log('Package Name ' + Package);
console.log('Package Price ' + Price);
}
}

关于javascript - NodeJS循环遍历字符串并获得准确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49641608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com