診断ツールなどに使える!名前を入力したらランダムに配列のインデックスを算出するJavascript

Pocket

以下の診断メーカーさんのようなサイトで名前を入力すると診断結果が表示されるサービスがありますよね。

 

以下のコードはそんな診断サービスなどに使用できるJavascriptです。

名前をバイナリに変換して診断結果を算出します。

var name='山田太郎',
    results=['診断結果1','診断結果2','診断結果3','診断結果4','診断結果5'];
 
//配列内の数値の合計値を算出
var sum  = function(arr) {
    return arr.reduce(function(prev, current, i, arr) {
        return prev+current;
    });
};

//名前をバイナリに変換
var encoder = new TextEncoder("utf-8"),
    u8array = encoder.encode(name);

//バイナリの合計値を診断結果配列の要素数で割って配列のindexを算出
var index = sum(u8array) % results.length;

console.log(results[index]);
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です