1、對象的引用
var a = {n:1};
var b = a;
a.x = a = {n:2};
console.log(a.x); //undefined
console.log(b.x); // {n:2}
//js中變量賦值從右向左執行,但是點的優先級最高,所以先是a.x = {n:2},改變了a的內存
// 但是{n:2}又賦值給了a, a此時已經等於{n:2} ,b = a, 相當於b = { n:1, x:{ n:2 }};
1、數組隨機排序
//方法一:
var arr = [1,2,3,4,5,6,7,8,9,10];
function randSort1(arr){
for(var i = 0,len = arr.length;i < len; i++ ){
var rand = parseInt(Math.random()*len);
var temp = arr[rand];
arr[rand] = arr[i];
arr[i] = temp;
}
return arr;
}
console.log(randSort1(arr));
//方法二:
var arr = [1,2,3,4,5,6,7,8,9,10];
function randSort2(arr){
var mixedArray = [];
while(arr.length > 0){
var randomIndex = parseInt(Math.random()*arr.length);
mixedArray.push(arr[randomIndex]);
arr.splice(randomIndex, 1);
}
return mixedArray;
}
console.log(randSort2(arr));
//方法三:
var arr = [1,2,3,4,5,6,7,8,9,10];
arr.sort(function(){
return Math.random() - 0.5;
})
console.log(arr);