我试图通过将属性与通过.text()从列表项获得的值进行比较,从对象属性中获取随机值。我尝试将结果存储到之后的范围内。
我试图找到电视或动物的第一个属性(或未来添加的任何其他属性),然后是简单,中等或硬的属性
不确定函数displayWord是否正确或者我是否遗漏了其他内容。
以下是代码的其他一些相关部分,以查看引用的变量。 https://jsfiddle.net/peliudzemas/0fqbgo9k/1/
let result = "";
let charadesList = {
tv : {
easy : ['Harry Potter', 'James Bond', 'transformers'],
medium : ['the planet of The Apes', 'Inception', 'finding nemo'],
hard : ['taken', 'alladin', 'cast away', 'schindler\'s list']
},
animals : {
easy : ['chicken', 'mouse', 'dog'],
medium : ['lion', 'elephant', 'giraffe'],
hard : ['monkey', 'panda', 'mole']
}
}
function displayWord(obj, value1, value2) {
for (var p in obj) {
if (obj.p == value1) {
for (var pp in obj.p) {
if (obj.p.pp == value2) {
result += obj.p.pp[Math.floor(Math.random()*obj.p.pp.length)];
}
}
}
}
$('#word').append(result);
}
$(document).ready(function () {
displayWord(charadesList, selectCategory, selectLevel);
});
答案 0 :(得分:0)
不确定你要做什么,但如果你知道你想要使用什么道具 - 在上面的例子中你知道 - 这个:
function getRandomWord(obj,val1,val2) {
try {
return obj[val1][val2][Math.floor(Math.random() * obj[val1][val2].length)];
} catch {
return null;
}
}
function {
let randomWord = getRandomWord(...params)
if (randomWord)
$('#word').append(result);
}