用js实现一个随机打乱数组顺序的函数,要求可以设定数组种任意1个元素的位置不变,其他位置的元素位置随机变化。
function shuffle(arr=[], fixIndex=-1) {
//遍历数组的每一个元素, 将它们随机的跟其他元素进行交换
arr.forEach( (item, index)=>{
if(index==fixIndex) reutrn; //碰到固定元素,跳过
//随机一个要交换的元素, 并确保不是固定元素
var swapIndex = parseInt(Math.random()*arr.length);
while(swapIndex==fixIndex){ swapIndex = parseInt(Math.random()*arr.length) }
//交换
[arr[index], arr[swapIndex]] = [arr[swapIndex], arr[index]];
})
}
用js实现一个比较APP版本号的大小的函数,版本号由数字和.组成。例如:1.1.0、1.10、1.2.13等。
function compareVersion(v1, v2){
var arr1 = v1.split(".");
var arr2 = v2.split(".");
//得到最小长度, 因为可能出现 1.3.14 和 1.6
var minLength = Math.min(arr1.length, arr2.length);
var res = 0;
for(var i=0; i<minLength; i++){
if(arr1[i] == arr2[i]) continue; //大版本相同,比较后面小版本号
arr1[i] - arr2[i]>0 ? res=true : res=false;
}
return res;
}