检查接收到的参数是否等于来自对象的名称,并从这些对象中获取属性的随机值

Check if received param is equal of name from objects and get a random value of properties from these objects

检查接收到的参数是否等于对象的名称,并从这些对象中获取属性的随机值。

大家好,我有一个字符串和一个这样的对象:

var reveivedValue = '11:00:00',
var randomItem = '',
myObject = {
  '11:00:00': [ '1', '2', '3' ,'4'],
  '12:00:00': [ '5', '6', '7'],
  '13:00:00': [ '8' , '9' , '10' ]
}

并且我需要在 "randomItem" 中接收一个数组的随机值,其中 "myObject" 的对象名称 === "receivedValue".

我不知道如何在对象中进行这种交互,我只知道如何获取数组的随机值。所以我想我需要将交互为真的 itens 推到另一个数组。喜欢:

var valueMatch = ['1', '2', '3' ,'4'];
var randomItem = valueMatch[Math.floor(Math.random() * valueMatch.length)];
console.log("randomItem:", randomItem);

所以,我只需要知道如何在这些对象中进行交互。

既然你知道如何使这个功能最简单,我将感谢你的帮助:)

尝试使用 Math.ceil and Math.random

var reveivedValue = '11:00:00',
  randomItem = '',
  myObject = {
    '11:00:00': ['1', '2', '3', '4'],
    '12:00:00': ['5', '6', '7'],
    '13:00:00': ['8', '9', '10']
  };

var valueMatch = ['1', '2', '3', '4'];
var randomval = Math.ceil(Math.random() * (valueMatch.length)) - 1;
console.log("randomval:", randomval);
console.log("randomItem:", myObject[reveivedValue][randomval]);

可以使用点符号或括号符号访问对象的属性。请参阅 Property accessors.

上的 MDN 文档

然后您可以像现在一样使用Math.random()获得随机物品。

var receivedValue = '11:00:00';
var myObject = {
  '11:00:00': ['1', '2', '3', '4'],
  '12:00:00': ['5', '6', '7'],
  '13:00:00': ['8', '9', '10']
};

var selectedValue = myObject[receivedValue];

var randomItem = selectedValue[Math.floor(Math.random() * selectedValue.length)];

console.log("randomItem:", randomItem);