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

如何用ECMA 5.1语法实现特定数字的随机排序?

用ECMA 5.1实现随机生成1-5中4个不重复数字的数组

你提供的ES6代码里用到了几个ES6独有的特性(const、let、Array.prototype.includes()),这些在ECMA 5.1中不被支持,只需要替换掉这些特性就能实现相同功能。

需要替换的ES6特性:

  • 将const和let替换为var(ECMA 5.1仅支持var声明变量)
  • 用Array.prototype.indexOf() !== -1替代Array.prototype.includes()(ECMA 5.1没有includes方法)

转换后的ECMA 5.1代码:

// function to pick length number between min and max
function generateRandomArr(length, max, min) {
  var resultsArr = [];
  for (var i = 0; i < length; i++) {
    var newNumber = Math.floor(Math.random() * (max - min)) + min;
    resultsArr.indexOf(newNumber) !== -1 ? length += 1 : resultsArr.push(newNumber);
  }
  return resultsArr;
}


// picks 4 digits between 1 and 5 and stores them in an array
vars.listsarray = generateRandomArr(4, 5, 1);

console.log("List of 4 digits picked: " + vars.listsarray);

console.log("Set task order for subject_nr " + vars.subject_nr);

这段代码的逻辑和你原有的ES6代码完全一致:循环生成指定范围内的随机数,若数字已存在则增加循环次数重新生成,直到得到length个不重复的随机数,最终返回结果数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:45:23