dim nba()
redim nba(x)
for i=0 to x-1
nba(i)=i
next
sub ww()
randomize '初始化随机数生成器
for qq=0 to x-1
a=rnd() ’生成0-1的随机数
b=int(x*a) 'int()和parseint()是取整数,得到从0到x间一个随机整数
c=nba(qq)
nba(qq)=nba(b)
nba(b)=c '以上三句是把qq和b指向的列表项交换。
next
end sub
在使用需要某种程度的随机化的算法时,你会经常发现洗牌数组是一个相当必要的技能。下面的片段以O(n log n)的复杂度对一个数组进行就地洗牌。
在Web应用程序中,复制到剪贴板因其对用户的便利性而迅速流行起来。
注意:根据caniuse,该方法对93.08%的全球用户有效。所以必须检查用户的浏览器是否支持该API。为了支持所有用户,你可以使用一个输入并复制其内容。
每种语言都有自己的哈希列表的实现,在JavaScript中,它被称为Set。你可以使用Set数据结构轻松地从一个数组中获得唯一元素。
随着黑暗模式的普及,如果用户在他们的设备中启用了黑暗模式,那么将你的应用程序切换到黑暗模式是非常理想的。幸运的是,可以利用媒体查询来使这项任务变得简单。
根据caniuse的数据,matchMedia的支持率为97.19%。
初学者经常发现自己在正确滚动元素的过程中遇到困难。最简单的滚动元素的方法是使用scrollIntoView方法。添加行为。"smooth "来实现平滑的滚动动画。
就像scrollToTop方法一样,scrollToBottom方法也可以用scrollIntoView方法轻松实现,只需将块值切换为结束即可
你的应用程序是否依赖随机颜色的生成?不用再看了,下面的代码段可以满足你的要求
使用交换律
r为0~i的随机索引
索引为i的数据和索引为r的数据进行交换,循环len个长度进行交换,也就是说交换len次
类似冒泡排序法
var a = [3,2,13], len = a.lengthfor(var i = 0 i < len i++){
for(var j = i + 1 j < len j++){
if(a[i] > a[j]){
// 把a[i]先存储到tmp中
var tmp = a[i]
//然后把a[j]存储到a[i]
a[i] = a[j]
//原来的a[i]就是tmp,存储到a[j],这样就换过来了
a[j] = tmp
}
}
}
看来你还不会冒泡排序法
只不过少了个for循环,j换成了随机的r,从而实现了洗牌功能。