gpt4 book ai didi

javascript - 从字符串中解析数字并将其推送到数组中

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

所以我有一个像这样的字符串:'5-2 7-1 8-9 7-4 1-3 1-0 2-8 8-0 6-9',它总是采用这种形式(数字,破折号,数字,空格,数字,破折号,..)

我想要做的是将其转换为整数数组:[5, 2, 7, 1, 8, ..., 9]我有这个解决方案

var str = '5-2 7-1 8-9 7-4 1-3 1-0 2-8 8-0 6-9';
numbers = str.replace('-', ' ').split(' ').map(function(entry) { return parseInt(entry); });
// ==> [ 5, 2, 7, 8, 7, 1, 1, 2, 8, 6 ] WTF!!

所以我就这么做了

var str = '5-2 7-1 8-9 7-4 1-3 1-0 2-8 8-0 6-9';
numbers = str.split(' ').join('').split('-').join('').split('').map(function(num) {
return parseInt(num);
}); // ==> [ 5, 2, 7, 1, 8, 9, 7, 4, 1, 3, 1, 0, 2, 8, 8, 0, 6, 9 ] All good!

但我不知道为什么第一个解决方案不起作用,我知道问题出在 str.replace 但我不明白为什么它会产生这个结果

最佳答案

默认情况下,replace 方法仅替换第一个匹配项。您需要使用正则表达式来替换它们:

var str = '5-2 7-1 8-9 7-4 1-3 1-0 2-8 8-0 6-9';
numbers = str.replace(/-/g, ' ').split(' ').map(function(entry) {
// ^ The g flag makes the regex match all occurrences
return parseInt(entry);
});

关于javascript - 从字符串中解析数字并将其推送到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24439469/

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