gpt4 book ai didi

javascript - 映射字符串中的每个单词以重新排序

转载 作者:行者123 更新时间:2023-12-03 05:38:21 24 4
gpt4 key购买 nike

目前我正在尝试稍微重新排序我的字符串。我相信我需要使用 .map 来完成此操作,因此,我需要重新排序字符串 Set N Total Games Over/Under N. N 表示随机数。它存储在 market 的 var 中。这需要重新排序为 Under/Over N Total Games Set N。我已经开始通过使用大量困惑的 if 语句并使用 substr 来做到这一点,但这不是一个很好的解决方案,因为我的代码看起来真的很困惑,而且无论如何都不是一个很好的解决方案。我想知道是否有更好的方法来做到这一点。

对于字符串,每个 marketLabel 都会略有不同,只是每次的数字 (N) 可能不同,但如果有帮助的话,最大数字 N 可以是 5。

就目前的代码而言,这就是我所拥有的:

if (marketLabel.includes('Set' && 'Total Games Over/Under')) {
var splits = 'foo'; // = marketLabel.split('/');
var set = 'foo';
var market = 'foo';
if(marketLabel.includes('Set 1')) {
var arr = marketLabel.split(" ").map(function (val) {
console.log(String(val));
return String(val) + 1;
});
}
if(marketLabel.includes('Set 2')) {
splits = marketLabel.split('Set 2');
set = marketLabel.substr(0, marketLabel.indexOf('2')+1);
return "Under/Over" + splits + " " + set;
}
if(marketLabel.includes('Set 3')) {
splits = marketLabel.split('Set 3');
set = "set 3";
console.log('foo 3');
}
if(marketLabel.includes('Set 4')) {
set = "set 4"
splits = marketLabel.split('Set 4');
console.log('foo 4');
}
if(marketLabel.includes('Set 5')) {
set = "set 5"
splits = marketLabel.split('Set 1');
console.log('foo 5');
}

总而言之,我需要的是 marketLabel,它可能是以下之一:

Set 1 Total Games Over/Under 9.5
Set 2 Total Games Over/Under 9.5
Set 3 Total Games Over/Under 9.5
Set 4 Total Games Over/Under 9.5
Set 5 Total Games Over/Under 9.5

重新排序为:

Under/Over 9.5 Total Games Set 1
Under/Over 9.5 Total Games Set 2
Under/Over 9.5 Total Games Set 3
Under/Over 9.5 Total Games Set 4
Under/Over 9.5 Total Games Set 5

最佳答案

使用正则表达式:

market = "Set 1 Total Games Over/Under 9.5";
regex = /Set ([0-9.]+) Total Games (Over)\/(Under) ([0-9.]+)/
var match = regex.exec(market);
var newStr = match[3] + '/' + match[2] + ' ' + match[1] + ' Total Games Set ' + match[4];
console.log(newStr);

通过打印 match 数组元素来捕获数字、OverUnder 字符串并重新排序。

架构胜于文字:

enter image description here

您还可以只捕获数字并按正确的顺序将它们注入(inject)字符串中:

market = "Set 1 Total Games Over/Under 9.5";
regex = /Set ([0-9.]+) Total Games Over\/Under ([0-9.]+)/
var match = regex.exec(market);
var newStr = 'Under/Over ' + match[1] + ' Total Games Set ' + match[2];
console.log(newStr);

关于javascript - 映射字符串中的每个单词以重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40651636/

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