我试图将2D数组中的所有值从字符串转换为数字,但实际上是字符串的值(在Javascript Excel外接程序接口中)除外。
示例:
[["1000"],["3.2"],["banana"]]至
[[1000],[3.2],["banana]]
"1000" -> 1000
"3.2" -> 3.2
"banana" -> "banana"发布于 2022-09-18 12:30:58
此函数将帮助您解决以下问题:
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接收嵌套数组,因此我为您编写了一个递归函数:
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
}
}试试看!
https://stackoverflow.com/questions/73762605
复制相似问题