首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除了Javascript中的实际字符串外,如何将所有字符串转换为嵌套数组中的数字?

除了Javascript中的实际字符串外,如何将所有字符串转换为嵌套数组中的数字?
EN

Stack Overflow用户
提问于 2022-09-18 11:58:34
回答 4查看 93关注 0票数 -3

我试图将2D数组中的所有值从字符串转换为数字,但实际上是字符串的值(在Javascript Excel外接程序接口中)除外。

示例:

代码语言:javascript
运行
复制
[["1000"],["3.2"],["banana"]]

代码语言:javascript
运行
复制
[[1000],[3.2],["banana]]

"1000" -> 1000
"3.2" -> 3.2
"banana" -> "banana"
EN

Stack Overflow用户

回答已采纳

发布于 2022-09-18 12:30:58

此函数将帮助您解决以下问题:

代码语言:javascript
运行
复制
var values = ['1000','3.2','banana'];

function stringToNumber(arrayOfValues) {
  for (var i = 0; i < arrayOfValues.length; i++) {
    if (typeof arrayOfValues[i] != 'string' || isNaN(arrayOfValues[i])) {
      continue;
    }
    arrayOfValues[i] = +arrayOfValues[i];  // + before a string converts it to number
  }
}

更新:

在下面的注释中,您编写了从Excel接收嵌套数组,因此我为您编写了一个递归函数:

代码语言:javascript
运行
复制
var arrayOfArrays = [
  ['1000','3.2','banana'], 
  ['2','value','1820','just a word', true], 
  [20]
]; 

var values = ['1000','3.2','banana']; 

function stringToNumber(arrayOfValues) { 
  for (var i = 0; i < arrayOfValues.length; i++) { 
    if (typeof arrayOfValues[i] == 'object') {
      stringToNumber(arrayOfValues[i]); continue;
    }
    if (typeof arrayOfValues[i] != 'string' || isNaN(arrayOfValues[i])) {
      continue;
    }
    arrayOfValues[i] = +arrayOfValues[i]; // + before a string converts it to number
  }
}

试试看!

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73762605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档