Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取具有不同数据类型的数组的和_Javascript_Arrays_String - Fatal编程技术网

Javascript 获取具有不同数据类型的数组的和

Javascript 获取具有不同数据类型的数组的和,javascript,arrays,string,Javascript,Arrays,String,我正在尝试获取包含不同数据类型的数组的总和。例如,数组可以包含字符串、数字或数组,并且我的函数应该仍然能够获取数组的和。现在我正试图弄清楚如何将字符串值转换成数字。我希望我的函数计算数组[2,'21',19]的和并返回答案42,但现在它将数字转换为字符串并返回'2219'。 这就是我到目前为止所做的: for(let i = 0; i < values.length; i++) { if (typeof values[i] === 'string') { Number(valu

我正在尝试获取包含不同数据类型的数组的总和。例如,数组可以包含字符串、数字或数组,并且我的函数应该仍然能够获取数组的和。现在我正试图弄清楚如何将字符串值转换成数字。我希望我的函数计算数组[2,'21',19]的和并返回答案42,但现在它将数字转换为字符串并返回'2219'。 这就是我到目前为止所做的:

for(let i = 0; i < values.length; i++) {
if (typeof values[i] === 'string') {
      Number(values[i])
      return Number(values.reduce((i, j) => {return i + j}))
        }
}
for(设i=0;i{return i+j}))
}
}

您应该将每个元素转换为数字,而不是最终结果

常量值=[2,'21',19];
常量和=值。减少((c,a)=>数字(c)+数字(a));

控制台日志(总和)您应该将每个元素转换为数字,而不是最终结果

常量值=[2,'21',19];
常量和=值。减少((c,a)=>数字(c)+数字(a));

控制台日志(总和)您也可以使用parseInt()方法。

您也可以使用parseInt()方法。

如果您只对列表中的“字符串”和“数字”感兴趣,请查看以下内容:

var sum = 0;
for(let i = 0; i < values.length; i++) {
  if (typeof values[i] === 'string') {
    sum += Number(values[i])
  } else {
    sum += values[i]
  }
}

var总和=0;
for(设i=0;i
如果您只对列表中的“字符串”和“数字”感兴趣,请查看以下内容:

var sum = 0;
for(let i = 0; i < values.length; i++) {
  if (typeof values[i] === 'string') {
    sum += Number(values[i])
  } else {
    sum += values[i]
  }
}

var总和=0;
for(设i=0;i
谢谢!它现在起作用了,我不知道我怎么没看见that@TrailorLord没问题!不要忘了将答案标记为已被未来读者接受。您也可以使用
值。reduce((c,a)=>c+Number(a),0)以防止蓄能器重复浇铸。当传递长度为0或1的数组时,这也有按预期工作的好处。谢谢!它现在起作用了,我不知道我怎么没看见that@TrailorLord没问题!不要忘了将答案标记为已被未来读者接受。您也可以使用
值。reduce((c,a)=>c+Number(a),0)以防止蓄能器重复浇铸。这还具有在传递长度为0或1的数组时按预期工作的好处。