いい加減髪を切りたいminamiです。
JavaScriptでいつも書いてるな~という処理や、知っていると便利なTipsを簡潔に集めた記事を見てほお~と思ったものがいくつもあったので抜粋してみました。
配列からランダムで値を取り出す
var ary = ['犬','猫','鳥','タコ','イカ']; var random = ary[(Math.random() * ary.length)];
Math.random() * 数値 でその範囲内のランダムな値を取得できます。
決められた範囲からランダムに値を取りだす
var x = Math.floor(Math.random() * (max - min + 1)) + min;
min以上max未満の値を取得できます。
等差数列の配列を作る
var numbersArray = [] , max = 100; for( var i=1; numbersArray.push(i++) < max;);
[1,2,3...100] のような配列を作ることができます。push()と数値++を同時にやってるのがスマートですね。
A-Zのアルファベットと英数字からランダムな文字列を取得する
function generateRandomAlphaNum(len) {
var rdmString = "";
for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
return rdmString.substr(0, len);
}
引数で与えた文字数のA-Z+数字でできたランダムな文字列を取得できます。
配列をソートする
var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
numbers = numbers.sort(function(){ return Math.random() - 0.5});
配列のソートも1行で書けます。
trim()関数
String.prototype.trim = function(){return this.replace(/^\s+|\s+$/g, "");};
var txt = ' ワレワレハウチュウジン ダ ';
txt = txt.trim();
console.log(txt); // ワレワレハウチュウジンダ
文字列の前後の空白を削除するtrim();関数を実装します。\s+ を [\s ]+ としてやると全角スペースも削除できます。
文字列が数値かどうかを判定する
function isNumber(n){
return !isNaN(parseFloat(n)) && isFinite(n);
}
console.log(isNumber('99')); // true
console.log(isNumber('九十九')); // false
与えられた文字列が数字ならばtrueを返します。
AND/ORで実行するかどうかを判定する
var foo = 10; foo == 10 && doSomething(); // if (foo == 10) doSomething(); と同じ処理 foo == 5 || doSomething(); // if (foo != 5) doSomething();と同じ処理
if文を使わずに簡単な分岐処理が書けます。
HTMLをエスケープする
function escapeHTML(text) {
var replacements= {"<": "<", ">": ">","&": "&", "\"": """};
return text.replace(/[<>&"]/g, function(character) {
return replacements[character];
});
}
var txt = escapeHTML('<div>HOGE</div>');
HTMLが含まれた文字列をエスケープします。
まとめ
とてもよく使いそうな処理を選んで紹介してみました。
便利なライブラリが溢れている近頃ですが、単純な処理でもスマートな書き方を見るだけで目から鱗が落ちますね。
最新記事もよろしければご覧ください
- あれ、いつも書いてるな~というJavaScript の小技集
- ハローワークの情報提供サービスが始まります
- 【MovableType】テンプレート化したコードを圧縮するMinifierプラグインが超便利すぎる
- 【MySQL】日付時刻関数を使用して、日付や時刻の差分を取得する
- まだまだ使うよ!便利なFireworksの時短ペースト紹介
バシャログ。の購読はこちらから
RSSリーダーを乗り換えた方は再度ご登録を。