javascript - 根据字符串获取永久数组项

标签 javascript arrays random hash

我需要根据为传递的字符串计算的哈希值来获取随机数组项:

var animals = [ 'dog', 'cat', 'horse', 'cow', 'tiger', 'trump' ];
function getFixedItem(str, arr) {
  //magic goes here
  var hash = anyFunctionToCalcHash(str);
  var magicNumber = ???; // calculated based on hash, must be between 0 and arr.length - 1
  return arr[magicNumber];
}

预期类似:

getFixedItem('john doe', animals); // returns cat
getFixedItem('john moe', animals); // returns horse
getFixedItem('john doe', animals); // returns cat
getFixedItem('abc102030', animals); // returns trump
getFixedItem('john doe', animals); // returns cat

最佳答案

您可以使用输入字符串的 ASCII 代码计算数字。然后使用模数将该数字从 0 转换为数组的长度。

...
var sum = 0;
str.split('').forEach(a => sum += a.charCodeAt(0));
var magicNumber = sum % arr.length;
return arr[magicNumber]

关于javascript - 根据字符串获取永久数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51883733/

相关文章:

javascript - 动态 child 正在扩大 parent 的宽度

javascript - 将数组的数组作为项目转换为以对象作为项目的对象

javascript - 当我无法访问 PHP 代码时,如何将序列化 PHP 对象转换为字符串 JAVASCRIPT?

c - 如何在二维数组中成对存储随机字母?

ios - 生成可靠的伪随机数

javascript - Socket.io 授权功能不更新 session 数据

php - 数组插入mysql行

javascript - 如何使用 jQuery 将多维字符串数组转换为 float ?

arrays - 生成随机数时遇到 "Fatal error: Index fell out of range"错误

python - 为什么使用相同的随机种子、相同的计算机、相同的程序会得到不同的结果