javascript - javaScript - 如何将多个动态值分配给循环中的变量
问题描述
我有匹配的动态数组:
[
"Rivers United - Kano Pillars",
"MFM FC - Abia Warriors",
"Lobi Stars - Enugu Rangers",
"Sunshine Stars - Dakkada",
"Ifeanyi Ubah - Kwara United",
"Enyimba - Adamawa United",
"Empoli - Torino U19",
"Bologna U19 - Ascoli",
"Lazio - Inter U19",
"Juventus U19 - Spal",
"Milan - Fiorentina U19",
"Sassuolo U19 - AS Roma U19",
"Genclerbirligi - Denizlispor",
"Goztepe - Fenerbahce",
"Kayserispor - Demir Grup Sivasspor",
"Trabzonspor U19 - Istanbul Basaksehir AS",
"Fatih Karagumruk - KASIMPASA AS",
"Portugal - Israel",
"Wydad AC Casablanca - DHJ ",
"Rsb Berkane - Athletic Youssoufia"
]
supertest
当我使用基于上述数组的库执行 API 调用时,我能够获取单个对手并保存到单个变量中,我的代码是:
const response = await api.getRequestAsync("https://sports/api/feeds/prematch/mostpopularsports/en/1/5/6/", `2021-06-06`, "", "");
const otp = api.jsonPath(response.body, `$[0].AreaMatches[0].Items..ItemName`);
let opponent1 = otp[0].split(" - ")[0];
let opponent2 = otp[0].split(" - ")[1];
let opponent20 = otp[5].split(" - ")[1];
console.log(opponent1 + " | " + opponent2 + " | " + opponent20);
产生变量为:opponent1, opponent2...opponent20
和控制台输出为:[0-0] Rivers United | Kano Pillars | Adamawa United
但这会产生手动工作来为每个变量赋值。
如何将此代码传输到loop logic
,因此每个对手都会动态变化:Rivers United, Kano Pillars...Athletic Youssoufia
和变量为:opponent1, opponent2...opponent20
解决方案
例如,您可以使用数组来存储多个值,就像您已经在使用的那样。您只需要自己创建这些变量。
请参阅JavaScript -来自 Mozilla Web Docs 的数组
在您的示例代码中,您访问otp
的将对手作为字符串。我们可以创建一个循环来用您的调用otp
结果填充数组。split()
这是一个简单的示例代码,您可以根据自己的喜好进行调整:
let opponentsLeft = [];
let opponentsRight = [];
for(var i=0; i < otp.length; i++) {
var split = otp[i].split(" - ");
opponentsLeft.push(split[0]);
opponentsRight.push(split[1]);
}
在更现代的 JavaScript 中,您可以使用forEach():
let opponentsLeft = [];
let opponentsRight = [];
otp.forEach(element => {
var split = element.split(" - ");
opponentsLeft.push(split[0]);
opponentsRight.push(split[1]);
});
您可以对生成的数组做任何您想做的事情。同样,只需根据自己的喜好进行修改。
然后,您可以在这些数组上编写一个循环来做您想做的事情:
for(var o = 0; o < opponentsLeft.length; o++) {
console.log('left', opponentsLeft[o]);
console.log('right', opponentsRight[o]);
}
推荐阅读
- mysql - JpaSystemException:试图从空的一对一属性分配 id Jpa 和 Hibernate 错误
- flutter - 从 Stateless 到 Stateful Widget 调用时变量返回 null 吗?
- python - 我想根据某些条件在我的数据框中添加一列
- python - 根据特定列上的条件计数过滤数据框
- linux - eclipse pydev 调试不工作的变量和断点
- mysql - 仅显示最新可用事件类型的值
- python-3.x - 使用 Python Gmail API 在 Latex 中发送 Gmail
- c++ - 如何在 C++ 中创建一个给出数字阶乘的程序
- python - 我下面写的课程会被认为是正确的代码吗
- c++ - 归并排序中数组的索引号有问题吗?