javascript:从范围生成2个随机但不同的数字

Hof*_*off 1 javascript random sampling

快速提问:

实现这一行python代码的最佳方法是什么(从给定范围生成两个随机但不同的数字)...

random.sample(xrange(10), 2)
Run Code Online (Sandbox Code Playgroud)

...在Javascript中?

提前致谢!

马丁

eri*_*ckb 5

这是我尝试使用拼接:

var a = [1,2,3,4,5,6,7,8,9,10];var sample = [];
sample.push(a.splice(Math.random()*a.length,1));
sample.push(a.splice(Math.random()*a.length,1));
Run Code Online (Sandbox Code Playgroud)

包含在一个功能中:

function sample_range(range, n) {
  var sample = [];
  for(var i=0; i<n; i++) {
    sample.push(range.splice(Math.random()*range.length,1));
  }

  return sample;
}

var sample = sample_range([1,2,3,4,5,6,7,8,9,10], 2);
Run Code Online (Sandbox Code Playgroud)

我们还可以将函数粘贴到Array.prototype中,使其具有点符号语法:

Array.prototype.sample_range = function(n) {
    var sample = [];
    for(var i=0;i<n;i++) {
      sample.push(this.splice(Math.random()*this.length,1));
    }
    return sample;
};
var sample = [1,2,3,4,5,6,7,8,9,10].sample_range(2);
Run Code Online (Sandbox Code Playgroud)