あなたは
var obj = {id: "bitcoin", name: "Bitcoin", symbol: "BTC", rank: "1", price_usd: "15487.0"};
Object.keys(obj).forEach((itm) => {
if(!Number.isNaN(+obj[itm])) obj[itm] = +obj[itm];
});
console.log(obj);
単純な数値変換は、ここで役割を果たしている、とそれを行うことができます。 +
演算子を使用して数値以外の文字列を数値に変換すると、NaN
が返されます。これを使うことで、あなたが望むものを達成することができました。
あなたがNaN
をチェックする信頼性の高い方法を使用する場合は、以下の方法で行く、
var obj = {id: "bitcoin", name: "Bitcoin", symbol: "BTC", rank: "1", price_usd: "15487.0"};
Object.keys(obj).forEach((itm) => {
let conv = +obj[itm];
if(conv == conv) obj[itm] = +obj[itm];
});
console.log(obj);
これは信頼性の高いアプローチです。 ECMAスクリプトごとに、番号がNaN
であるかどうかを確かめる方法は、その番号がそれ自身と等しいかどうかをチェックすることです。等しいでない場合、その数値はNaN
です。
まだあなたが変換しても、辞書順になりますネイティブのソート順文字列を数値に変換します。数値ソートを検索します。 – Teemu
問題は次にソート機能です。 – charlietfl