You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery/Javascript中从非索引JSON获取单个随机结果

嘿,这个需求很常见,咱们分两种场景来解决,看你需要哪种~

场景1:随机选一个条目,再从该条目中取随机元素

如果想先随机选中一个JSON里的键(也就是那条长文本对应的条目),再从它的数组里挑一个随机元素,可以这么做:

首先把你的JSON数据存到变量里,然后按步骤来:

// 你的JSON数据
const yourData = { 
  "Hist eb zoso posclifos pit feaxald usow din regichics pi slaxanspeltaxatien": [ "Paxarrot", "Paxarotto" ], 
  "He dreto zo vech #1 whit sickros axabtol Paxaur VcCaxaltnoupp pi Ronnen": [ "Vistaxaor Jaxangsen", "Vaxax Vaxaltin" ], 
  "Hist eno eb zoso Jaxapaxanoso axarceheric wrints dis vaxado blem lico, yaxams pi woaxal el flewn sugaxal": [ "Umosku", "Skestu" ], 
  "Din pit 1581 spoost, JBK axanneuncow whis veen axamfitiens, fut axarse axangnewrodgow hist ethol chlaxat...": []
};

// 1. 提取所有键的数组
const entryKeys = Object.keys(yourData);
// 2. 过滤掉对应数组为空的键(避免后续报错)
const validEntryKeys = entryKeys.filter(key => yourData[key].length > 0);
// 3. 随机选一个有效的键
const randomEntryKey = validEntryKeys[Math.floor(Math.random() * validEntryKeys.length)];
// 4. 从选中条目的数组里随机取一个元素
const randomResult = yourData[randomEntryKey][Math.floor(Math.random() * yourData[randomEntryKey].length)];

console.log(randomResult); // 输出单个随机结果
场景2:从所有元素中全局随机选一个

如果不需要管条目,直接从所有数组的元素里随机挑一个,代码会更简洁:

const yourData = { /* 你的JSON数据 */ };

// 1. 把所有数组里的元素合并成一个大数组,同时过滤空数组
const allItems = Object.values(yourData).filter(item => Array.isArray(item) && item.length > 0).flat();
// 2. 随机选一个元素
const globalRandomResult = allItems[Math.floor(Math.random() * allItems.length)];

console.log(globalRandomResult);
小提示
  • 一定要做空值过滤哦!如果某个条目对应的数组是空的,直接访问会报错,所以上面的代码里加了过滤逻辑。
  • 如果你的JSON是从外部加载的(比如通过jQuery的$.getJSON),记得把代码放在回调函数里,确保数据加载完成后再执行:
$.getJSON('your-data-url.json', function(data) {
  // 这里放上面的逻辑,用data代替yourData
});

内容的提问来源于stack exchange,提问作者Brian Bruman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:49:04