gpt4 book ai didi

javascript - 需要从数组中获取数字

转载 作者:搜寻专家 更新时间:2023-11-01 00:11:48 24 4
gpt4 key购买 nike

我有一个形式的数组:

['32 68', '56 78', '77 99']

我想使用 JavaScript (NodeJS) o/p 另一个数组,该数组将包含索引中每个元素的总和。类似的东西,

['100', '134', '176']

我尝试使用 .split("") 但双整数再次被分隔为单独的数字。还有其他方法可以解决这个问题吗?请注意,i/p可以是一位数或两位数。

最佳答案

您需要获取每个项目,按空格拆分(如果存在),然后将相应的拆分相加。像这样:

var origValues = ['32 68', '56 78', '77 99', '7'];
var addedValues = origValues.map(function(value) {
return value.split(' ')
.map(function(sArray) {
return parseInt(sArray);
})
.reduce(function(a, b) {
return a + b;
});
});

document.write(JSON.stringify(addedValues));

请注意,上面的示例处理了数组值中也有单个数字的情况。

对正在发生的事情提供一些解释......

  1. 你开始使用你的原始数组,你是 mapping a function传递给该函数的每个值。
  2. 在该函数内,我将值按空格分开,这将给我一个包含(可能)两个值的数组。
  3. 然后我再次将 map 函数应用于数组并将数组中的每个值解析为一个整数。
  4. 最后,我 reduce具有求和功能的整数数组。 Reduce 从左到右对数组中的每个项目应用累加器函数,这样您就可以将所有值相加。此结果会一路返回,以便您获得包含答案的新数组。

“绘图”形式的样子:

Start: origValues = ['32 68', '56 78', '77 99', '7']
Apply map (this will track one value): value = '32 68'
Apply the split: ['32', '68']
Map the parse integer function (I'm going to track both values): [32, 68]
Reduce: 32 + 68 = 100

关于javascript - 需要从数组中获取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663300/

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