1. 程式人生 > 其它 >JS內建物件——陣列物件

JS內建物件——陣列物件

// 1、建立陣列
// (1)字面量建立
var arr1 = [1, 2, 3];
// (2)利用new Array()
var arr2 = new Array(); //建立空陣列
var arr3 = new Array(2); //建立長度為2的空陣列
var arr4 = new Array(2, 3); //等價於[2,3]

//2、檢測是否為陣列,,,,,instanceof    isArray
console.log(arr1 instanceof Array);
console.log(Array.isArray(arr1));

//3、新增陣列元素,,,,,,,,push   unshift
// arr1.push(4, 'c');   //在陣列末尾新增
console.log(arr1.push(4, 'c')); //返回的是新增後陣列的長度
console.log(arr1);

// arr1.unshift(55, 'c'); //在陣列前面新增
console.log(arr1.unshift(5, 'c')); //返回的是新增後陣列的長度
console.log(arr1);

// 4、刪除元素,,,,,,pop   shift
// arr1.pop();   //刪除陣列最後一個元素
console.log(arr1.pop()); //返回的是刪除的元素
console.log(arr1);

// arr1.shift(); //刪除陣列第一個元素
console.log(arr1.shift()); //返回的是刪除的元素
console.log(arr1);

// 5、陣列排序
// (1)翻轉陣列
var newarr = [4, 2, 8, 11, 83]
console.log(newarr.reverse());
//(2)排序,,,,單純的sort()只能解決個位數的排序問題
newarr.sort(function(a, b) {
    // return a-b;  //升序
    return b - a; //降序
});
console.log(newarr);

// 6、陣列索引號
var arr4 = [4, 2, 8, 11, 4, 83, 2, 5]
console.log(arr4.indexOf(2, 3)); //從前往後找,只返回第一個滿足條件的索引號,如果在該數組裡面找不到指定元素,則返回的是-1,從索引3的位置開始查詢
console.log(arr4.lastIndexOf(2)); //從後往前找,只返回第一個滿足條件的索引號,如果在該數組裡面找不到指定元素,則返回的是-1

//陣列去重案例
// 核心演算法:遍歷舊陣列,然後拿著舊陣列元素去查詢新陣列,如果該元素在新數組裡面沒有出現過,我們就新增,否則環新增。
function unique(arr) {
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}
console.log(unique([4, 2, 8, 11, 4, 83, 2, 5]));

// 7、陣列轉換為字串
console.log(arr4.toString()); //返回的是4,2,8,11,4,83,2,5
console.log(arr4.join('-')); //可以加分隔符,返回的是4-2-8-11-4-83-2-5

/*  8、concat(),array1.concat(array2),,連線兩個或多個數組不影響原陣列,返回一個新的陣列
 slice(),陣列擷取slice(begin, end),返回被擷取專案的新陣列,[begin, end),陣列下標
 splice(),陣列刪除splice(從索引數開始,[要刪除個數,要新增的元素]),返回被刪除專案的新陣列 注意,這個會影響原陣列 */