如何在Javascript中的两个指定变量之间生成随机整数,例如x = 4并y = 8输出4,5,6,7,8中的任何一个?
可能重复:
如何随机化一个javascript数组?
我想在JavaScript中随机播放一系列元素,如下所示:
[0, 3, 3] -> [3, 0, 3]
[9, 3, 6, 0, 6] -> [0, 3, 6, 9, 6]
[3, 3, 6, 0, 6] -> [0, 3, 6, 3, 6]
Run Code Online (Sandbox Code Playgroud) 我需要随机调整以下数组:
int[] solutionArray = {1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1};
Run Code Online (Sandbox Code Playgroud)
这有什么功能吗?
我用他的JavaScript代码帮助了一个人,我的眼睛被一个看起来像这样的部分抓住了:
function randOrd(){
return (Math.round(Math.random())-0.5);
}
coords.sort(randOrd);
alert(coords);
Run Code Online (Sandbox Code Playgroud)
我的第一个是:嘿,这不可能奏效!但后来我做了一些实验,发现它确实至少似乎提供了很好的随机结果.
然后我做了一些网络搜索,几乎在顶部发现了一篇文章,这段代码最简单地被复制.看起来像一个相当可敬的网站和作者......
但我的直觉告诉我,这一定是错的.特别是因为ECMA标准没有规定排序算法.我认为不同的排序算法会导致不同的非均匀混洗.一些排序算法甚至可能无限循环...
但你怎么看?
而另一个问题是......现在我将如何衡量这种改组技术的结果是多么随机?
更新:我做了一些测量并将结果发布在下面作为答案之一.
每个JS意见领袖都说扩展原生对象是一种不好的做法.但为什么?我们是否获得了性能?他们是否害怕有人以"错误的方式"做到这一点,并添加了可枚举的类型Object,几乎破坏了任何对象上的所有循环?
以TJ Holowaychuk的should.js为例.他增加了一个简单的getter来Object,一切工作正常(来源).
Object.defineProperty(Object.prototype, 'should', {
set: function(){},
get: function(){
return new Assertion(Object(this).valueOf());
},
configurable: true
});
Run Code Online (Sandbox Code Playgroud)
这真的很有道理.例如,可以扩展Array.
Array.defineProperty(Array.prototype, "remove", {
set: function(){},
get: function(){
return removeArrayElement.bind(this);
}
});
var arr = [0, 1, 2, 3, 4];
arr.remove(3);
Run Code Online (Sandbox Code Playgroud)
是否有任何反对扩展本机类型的论据?
JQuery有两个版本供下载,一个是Production(19KB,Minified和Gzipped),另一个是Development(120KB,Uncompressed Code).
现在是紧凑的19kb版本,如果你下载它,你会看到仍然是一个javascript可执行代码.他们是如何紧凑的呢?我怎么能像这样'缩小'我的代码呢?
如何使用JavaScript生成8个,比如1到100之间的唯一随机数?
我想生成一个随机字符串,必须有来自az和3个数字的5个字母.
我怎么能用javascript做到这一点?
我有以下脚本,但它不符合我的要求.
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var string_length = 8;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
Run Code Online (Sandbox Code Playgroud) 我已阅读并通过自己的经验发现JavaScript没有块范围.假设语言是出于某种原因而设计的,那是什么原因?
我在谷歌和周围环顾四周,但我发现的帖子只是重申JS有功能范围而不是阻止范围,没有解释原因.我很想知道为什么会出现这种情况.
一般情况下,在"严格模式"下在浏览器中执行javascript会使其性能更高吗?是否有任何主流浏览器进行额外的优化或使用任何其他技术来提高严格模式下的性能?
重新说一下,在其他目标中,严格模式是否允许浏览器引入其他优化或其他性能增强?