以下の診断メーカーさんのようなサイトで名前を入力すると診断結果が表示されるサービスがありますよね。
以下のコードはそんな診断サービスなどに使用できる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]);
コメントを残す