# Array的常用方法 splice, slice, join, includes, indexOf, sort ###### tags:`JavaScript` ## join 將陣列元素連接、合併成一個字串,並回傳此字串。 - join() item加上逗號 - join('') item直接合併 - join(' ') item 加上指定內容合併 ```javascript= const dogs = ['芒狗', '奇異狗', '蘋狗']; console.log(dogs.join()); // "芒狗,奇異狗,蘋狗" console.log(dogs.join('')); // "芒狗奇異狗蘋狗" console.log(dogs.join('-')); //"芒狗-奇異狗-蘋狗" ``` ## splice 通過刪除或取代現有元素和/或添加新元素來更改陣列的內容。 ```javascript= const months = ['Jan', 'March', 'April', 'June']; months.splice(1, 0, 'Feb'); // 第一個元素後刪除0個元素並加上'Feb' console.log(months); // ["Jan", "Feb", "March", "April", "June"] months.splice(4, 1, 'May'); // 第四個元素後刪除1個元素並加上'May' console.log(months); // Expected output: Array ["Jan", "Feb", "March", "April", "May"] ``` ## slice 不會修改原本的陣列,而是回傳由原本的陣列淺層複製的元素,起始值為0複製開始與結束點(結束點不算)中的內容。 `slice(2)`第二個item後的所有item `slice(start, end)` `slice(2, 4)`第二個到第三個item ```javascript= const animals = [0, 1, 2, 3, 4]; console.log(animals.slice(2)); // [2, 3, 4] console.log(animals.slice(2, 4)); // [2, 3] console.log(animals.slice(-2)); // [3, 4] console.log(animals.slice(2, -1)); // [2, 3] ``` ## includes 判斷陣列是否包含特定的元素,並以此來回傳 true 或 false,且區分大小寫 ```javascript= const array1 = [1, 2, 3]; console.log(array1.includes(2)); // true const pets = ['cat', 'dog', 'bat']; console.log(pets.includes('Cat')); // false console.log(pets.includes('cat')); // true ``` ## indexOf 回傳元素於陣列中第一個被找到之索引(index),若不存在於陣列中則回傳 -1。 ```javascript= const beasts = ['ant', 'bison', 'camel', 'duck', 'bison']; console.log(beasts.indexOf('bison')); // 1 // 第一個索引bison index為1 第二個為4 console.log(beasts.indexOf('bison', 2)); // 4 console.log(beasts.indexOf('giraffe')); // -1 ``` ## sort 對陣列的元素進行排序並返回排序後的陣列,排序預設的排序順序是根據字串的 Unicode 編碼位置。 ```javascript= const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months); // Array ["Dec", "Feb", "Jan", "March"] const array1 = [1, 30, 4, 21, 100000]; array1.sort(); console.log(array1); // Array [1, 100000, 21, 30, 4] ``` ## isArray 確定傳遞的值是否為Array ```javascript= Array.isArray([1, 2, 3]); // true Array.isArray(undefined); // false ``` ## reverse 傳參考特性指向原本記憶體,因此在更改新array時會更動到原array array.reverse()