获取对象属性的随机值并存储到变量

时间:2017-12-07 17:22:56

标签: javascript object random

我试图通过将属性与通过.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);
});

1 个答案:

答案 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);
}