首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在随机选择的对象中创建随机属性?

如何在随机选择的对象中创建随机属性?
EN

Stack Overflow用户
提问于 2017-05-30 02:23:42
回答 1查看 39关注 0票数 0

例如,如果我有:

代码语言:javascript
复制
var weapon = [ "sword", "mace", "staff"];

var swordtype = [ "long", "short"];

var stafftype = [ "quarter", "magic"];

我的脚本随机选择“剑”在我的HTML标记中显示在武器变量中。

如果我的代码随机地从武器变量中选择“剑”,它还会随机地选择一个“剑型”来配合它,我怎么说呢?输出“长剑”还是“短剑”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-30 02:50:22

您需要关联相关数据。你的结构可能是这样的:

代码语言:javascript
复制
// Use objects, not arrays to store key/value pairs
var weapons = {
  sword:["long","short", "broad"], 
  mace: ["standard", "long", "short"],
  staff: ["quarter", "magic", "wizard"],
  "nuclear missle": ["10 megaton", "20 megaton", "50 kiloton"],
  dagger: ["standard", "poison"]
};

// Function for selecting random weapon

function getRandomWeapon(){
  // Choose random weapon as an index from the weapons object:
  var weaponNum = Math.floor(Math.random() * Object.keys(weapons).length);
  
  // Get the property name that corresponds to that key number:
  var weapon = Object.keys(weapons)[weaponNum];

  // Choose random weapon type as an index from the random weapon selected above:
  var specificWeaponNum = Math.floor(Math.random() * weapons[weapon].length);
  
  // Get the array value associated with that index
  var specifcWeapon = weapons[Object.keys(weapons)[weaponNum]][specificWeaponNum];
  return specifcWeapon + " " + weapon;
}

document.querySelector("button").addEventListener("click", function(){
  document.getElementById("weapon").textContent = getRandomWeapon();
});
代码语言:javascript
复制
<div>You have a: <span id="weapon"></span></div>
<button>Get Weapon</button>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44252500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档