gpt4 book ai didi

javascript - 对其中包含可选斜杠的字符串求和

转载 作者:行者123 更新时间:2023-12-01 01:58:30 24 4
gpt4 key购买 nike

我需要对字符串数组中的所有值求和,其中一些为空,一些是普通整数,一些由斜杠分隔。当值只是整数或空时,我可以使用它,但当它们用斜杠分隔时,我可以使用它。

//this works and should total 30
//var data = ["","1","","2","3","10","14"];

//this doesn't work and should total 166, not 128
var data = ["","1","2","5 / 35","","100 / 3", "20"];

var sum = data.reduce(function (a, b) {
a = parseInt(a, 10);
if(isNaN(a)){ a = 0; }

b = parseInt(b, 10);
if(isNaN(b)){ b = 0; }

return a + b;
});

console.log(sum);

这是一个包含示例的代码笔...

https://codepen.io/murphydan/pen/GGWwgE?editors=0011

最佳答案

我想您只是想对数组中的所有数字求和,无论元素内容是什么(因为您想要的结果是 166)。您可以简单地拆分并使用另一个reduce

const data = ["", "1", "2", "5 / 35", "", "100 / 3", "20"];
const res = data.reduce((a, b) => {
const t = b.split('/');
return a + t.reduce((x, y) => x + Number(y), 0);
}, 0);


console.log(res);

<小时/>

如果您需要更灵活,例如斜杠也可以是其他东西,如逗号、破折号或其他什么,您也可以用非数字分隔。 分割(/\D/)。当每个空格都有另一个条目时,这将创建更多的数组条目,但这不会改变结果。

关于javascript - 对其中包含可选斜杠的字符串求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50804801/

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