js基礎---陣列的其他方法
阿新 • • 發佈:2021-08-31
var arr = ["孫悟空","豬八戒","沙和尚"];
var arr2 = ["白骨精","玉兔精","蜘蛛精"];
var arr3 = ["二郎神","太上老君","玉皇大帝"];
/*
* concat()可以連線兩個或多個數組,並將新的陣列返回
* - 該方法不會對原陣列產生影響
*/
var result = arr.concat(arr2,arr3,"牛魔王","鐵扇公主");
/*
* join()
* - 該方法可以將陣列轉換為一個字串
* - 該方法不會對原陣列產生影響,而是將轉換後的字串作為結果返回
* - 在join()中可以指定一個字串作為引數,這個字串將會成為陣列中元素的連線符
* 如果不指定連線符,則預設使用,作為連線符
*/
arr = ["孫悟空","豬八戒","沙和尚","唐僧"];
result = arr.join("@-@");
/*
* reverse()
* - 該方法用來反轉陣列(前邊的去後邊,後邊的去前邊)
* - 該方法會直接修改原陣列
*/
arr.reverse();
//console.log(arr);
arr = ["b","d","e","a","c"];
/*
* sort()
* - 可以用來對陣列中的元素進行排序
* - 也會影響原陣列,預設會按照Unicode編碼進行排序
*/
arr.sort();
//arr.reverse();
/*
* 即使對於純數字的陣列,使用sort()排序時,也會按照Unicode編碼來排序,
* 所以對數字進排序時,可能會得到錯誤的結果。
*
* 我們可以自己來指定排序的規則
* 我們可以在sort()新增一個回撥函式,來指定排序規則,
* 回撥函式中需要定義兩個形參,
* 瀏覽器將會分別使用陣列中的元素作為實參去呼叫回撥函式
* 使用哪個元素呼叫不確定,但是肯定的是在陣列中a一定在b前邊
* - 瀏覽器會根據回撥函式的返回值來決定元素的順序,
* 如果返回一個大於0的值,則元素會交換位置
* 如果返回一個小於0的值,則元素位置不變
* 如果返回一個0,則認為兩個元素相等,也不交換位置
*
* - 如果需要升序排列,則返回 a-b
* 如果需要降序排列,則返回b-a
*/
arr = [5,4,2,1,3,6,8,7];
arr.sort(function(a,b){
//前邊的大
/*if(a > b){
return -1;
}else if(a < b){
return 1;
}else{
return 0;
}*/
//升序排列
//return a - b;
//降序排列
return b - a;
});
console.log(arr);