オブジェクトタイプの混合セットを文字列に変換する際に、単純な数値から文字列への変換(科学表記法ではない)を保証する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
上記の関数は、個々の要素の種類に関係なく、すべてを文字列の 1D 配列にマージする必要があり[...,'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」を返します
編集:
Java によって内部的に解釈される Informer JavaScript を使用しています。このため、科学表記法を取得しているようですが、node.jsでは表記法を取得していません。Informer の wiki からの引用:
"インフォーマー JavaScript と「通常の」JavaScript
通常の JavaScript は通常、HTML に埋め込まれ、ブラウザーによって解釈されます。これは、「通常の」JavaScript がレンダリングされる実際の HTML ドキュメントに影響を与える可能性があることを意味します。インフォーマー JavaScript は実際に埋め込まれ、解釈されます。 Informer Java アプリケーションによって. 解釈されると、結果はブラウザに渡されます. つまり、Informer JavaScript は、ブラウザで表示される HTML ドキュメントに影響を与えることはできません. ただし、JavaScript が実行できる他のすべてのことは実行できます. -ソース: Informer wiki - コラム