あれ、いつも書いてるな~というJavaScript の小技集

minami

2014.03.05

いい加減髪を切りたい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が含まれた文字列をエスケープします。

まとめ

とてもよく使いそうな処理を選んで紹介してみました。

便利なライブラリが溢れている近頃ですが、単純な処理でもスマートな書き方を見るだけで目から鱗が落ちますね。

最新記事もよろしければご覧ください

バシャログ。の購読はこちらから

RSSリーダーを乗り換えた方は再度ご登録を。

  • follow us in feedly

ページの先頭へ

アーカイブ

バシャログ。運営Webサービス

  • 当番くん - 完全無料の当番表自動生成サービス
  • CSS Selector Generator | CSS のセレクタ一覧を一発で自動生成!
  • バシャログスタッフによるWebサイト制作サービス

お問い合わせ

※個別の技術的なご相談については弊社が通常有償で行っている業務の範疇となりますためご回答いたしかねます。
申し訳ございませんが、ご了承ください。

株式会社シーブレイン