在将一组混合的对象类型转换为字符串时,javascript 中有没有一种方法可以确保纯数字到字符串的转换(不是科学记数法)?
我正在编写 javascript 函数来格式化社会安全号码的预先存在的数据。我无法解决的问题是将长度为 9 位的数字数组转换为字符串数组。当我使用以下功能时:
function arrayTo1d(arr){
/*
Returns a 1D array of strings from the given array
*/
try {
return arr.join().split(",");
} catch (err) {
return ["Datatype Error"];
}
}
它以科学计数法给出了一个字符串数组,例如:1.23456789E8
我需要将数字作为原始显示的字符串:123456789
为了增加这个问题,数组元素有时是字符串、数字或对象的混合,因此toString()
,或者在这种情况下,join().split(",")
是“包罗万象”的修复方法。当一个数组包含一个字符串 ,'123-45-6789'
和一个数字 ,123456789
时,上面的函数应该将所有内容合并到一个一维字符串数组中,而不管单个元素类型如何,给出[...,'123-45-6789','123456789']
但我得到[...,'123-45-6789','1.23456789E8']
.
补充说明:
Object.prototype.toString.call(ssnObj).slice(8,-1);
返回“JavaArray”
和:
Object.prototype.toString.call(ssnObj[0]).slice(8,-1);
返回“JavaObject”
编辑:
我正在使用 Informer JavaScript,它由 Java 内部解释。似乎由于这个原因,我得到了科学记数法,而在 node.js 中,我没有得到记数法。来自 Informer 的 wiki 的引述:
" Informer JavaScript 与“普通”JavaScript
普通 JavaScript 通常嵌入在 HTML 中并由浏览器解释。这意味着“普通”JavaScript 会影响实际呈现的 HTML 文档上的内容。Informer JavaScript 实际上是嵌入并解释的“ -来源:Informer wiki - 专栏