Javascript 如何从嵌套在对象中的数组中选择随机项

Javascript 如何从嵌套在对象中的数组中选择随机项,javascript,Javascript,我正在尝试一个项目,该项目将从对象中的3个嵌套数组中选择一个随机答案。我的目标是知道答案来自哪个数组,这样我就可以用它来知道新句子是什么 下面的示例适用于1个数组,但我想知道答案是好答案、坏答案还是可疑答案,因此我将其放在对象中 编辑:下面的代码在我的对象中给了我一个随机属性,但我需要更深入一步。它旁边的评论是我尝试过的,但它给了我未定义的 const randomAnswers = { goodAnswers: ['yes','Absolutely','certainly',"I'm sure

我正在尝试一个项目,该项目将从对象中的3个嵌套数组中选择一个随机答案。我的目标是知道答案来自哪个数组,这样我就可以用它来知道新句子是什么

下面的示例适用于1个数组,但我想知道答案是好答案、坏答案还是可疑答案,因此我将其放在对象中

编辑:下面的代码在我的对象中给了我一个随机属性,但我需要更深入一步。它旁边的评论是我尝试过的,但它给了我未定义的

const randomAnswers = {
goodAnswers: ['yes','Absolutely','certainly',"I'm sure",'HELL YES'],
maybes: ['maybe','probably','perhaps',"honestly man, i really don't 
know this one"],
badAnswers: ['LOL NO','no way man','maybe',"forget it",'HELL no','Are 
you serious?']
};
{

const init = () => {
console.log("initiated");
let answer = document.querySelector('.answer');
answer.style.opacity = 0;

setTimeout(fixSentence,3000);
//fixSentence();
}

const fixSentence = () => {
    let a = document.querySelector('.answer');
    let think = document.querySelector('.think');
    console.log('shown');
    console.log(a.textContent);
    let randomAnswer = randomAnswers[Math.floor(Math.random()*randomAnswers.length)];

    var randomProperty = function (obj) {
        var keys = Object.keys(obj)
        let random = obj[keys[ keys.length * Math.random() << 0]];
        return random/*[Math.floor(Math.random()*randomAnswers.length)]*/;
    };

    console.log(randomProperty(randomAnswers))

    let splittedSentence = a.textContent.split(" ");
    console.log(splittedSentence);
    a.textContent = `${randomAnswer}`;
    a.style.opacity = 1;
    think.style.opacity = 0;
}

init();
const random answers={
好答案:[是的,'绝对的','当然的','我肯定的','该死的是的',
也许:[‘也许’、‘也许’、‘也许’,“老实说,我真的不知道
知道这个“],
糟糕的回答:['LOL NO','NO way man','maybe',“忘了它吧,'HELL NO','都是
你是认真的吗?']
};
{
常量init=()=>{
控制台日志(“已启动”);
让answer=document.querySelector('.answer');
answer.style.opacity=0;
设置超时(固定语句,3000);
//固定句();
}
常量固定句=()=>{
设a=document.querySelector('.answer');
让think=document.querySelector('.think');
console.log(“显示”);
console.log(a.textContent);
让randomAnswers=randomAnswers[Math.floor(Math.random()*randomAnswers.length)];
var randomProperty=函数(obj){
变量键=对象键(obj)

让random=obj[keys[keys.length*Math.random()您可以这样做:

const random answers={
好答案:[是的,'绝对的','当然的','我肯定的','该死的是的',
也许:[‘也许’,‘可能’,‘也许’,‘老实说,我真的不知道这件事’,
糟糕的回答:['LOL NO','NO way man','maybe',“忘了它吧,'HELL NO',“你是认真的吗?”]
};
常量随机数=函数(主题){
返回Math.floor(Math.random()*subject.length);
}
常量类型=Object.keys(随机答案);
常量randomTypeNumber=随机数(类型);
const randomType=类型[randomTypeNumber];
常数randomAnswerNumber=随机数(随机答案[randomType]);
const randomAnswer=随机答案[randomType][randomAnswerNumber];

console.log({randomType,randomAnswer});
一个问题是你想要的概率是多少?仅仅因为你有更多的方法给出一个错误的答案,你想要一个更高的错误答案的概率?或者你想要相同的概率(1/3)有一个好的,也许是坏的答案吗?事实上,如果它不在两次之后选择同一个数组就好了。