javascriptでたまに必要になるよく使うコードを置いてます。
主に自分用です。
どこでも誰でも使えるものもあれば私(の環境)しか使えないものもあります。
三項演算子とかワンライナーで書けそうなところも、可読性と再利用性を優先してます。
スニペットとは「分かっている人が楽をするためのツール」です。
分からない人がコピペするためのものではありません。
コードの意味を理解してご利用ください。
数値文字列を数値にする
PHPの json_encode() で出力されたデータを受け取ったときに、数値も文字列型で渡されてくるので、数値は数値型に変換します。
ちなみに JSON_NUMERIC_CHECK は意図しないところまで数値にされてしまうので扱いづらいです。
console.log(json);
// 数値文字列を数値にする
// まだ使い込んでいないので変更するかもです
// 頭が 0 から始まる整数は変換しません
// カンマ区切りは変換しません
(function(){
var f = function(a){
// 配列でない
if ('array' !== Object.prototype.toString.call(a).slice(8, -1).toLowerCase()) {
// オブジェクトでない
if ('object' !== Object.prototype.toString.call(a).slice(8, -1).toLowerCase()) {
return a;
}
}
for(var i in a) {
// 文字列の時
if ('string' == Object.prototype.toString.call(a[i]).slice(8, -1).toLowerCase()) {
if (a[i] === '0') {
a[i] = 0;
} else if (a[i].match(/^[1-9][0-9]*?$/)) {
a[i] = parseInt(a[i], 10);
} else if (a[i].match(/^([1-9][0-9]*|0)\.[0-9]+$/)) {
a[i] = parseFloat(a[i], 10);
}
} else {
a[i] = f(a[i]);
}
}
return a;
};
json = f(json);
})();
console.log(json);