Monday, June 18, 2012

slice()

Metode Array.slice() mengekstrak elemen-elemen di dalam array terhitung dari indeks diparameter beginIndex sampai dengan dan tidak termasuk indeks di parameter endIndex, dan metode Array.slice() ini akan mengembalikan array baru yang berisi elemen-elemen yang dihasilkan dari operasi pengekstrakan.

Sintaks:

arrayObj.slice(beginIndex, endIndex)
  • beginIndex menetapkan indeks di mana pengekstrakan di mulai.
  • endIndex (opsional) menetapkan indeks di mana pengekstrakan berakhir (elemen yang menjadi indeks batas pengekstrakan berakhir tidak termasuk yang akan dikembalikan metode Array.slice()).

Jika parameter endIndex tidak digunakan, otomatis awal pengekstrakan terhitung dari indeks di parameter beginIndex sampai dengan posisi indeks elemen terakhir. Jika yang manapun (beginIndex atau endIndex) nilainya negatif, nilai negatif itu mengacu pada posisi relatif dari elemen terakhir array.

Metode Array.slice() adalah metode standard JavaScript 1.2+, JScript 3.0+, ECMAScript 3.0+ dan di dukung Google Chrome Beta+, Firefox 1.0 (Gecko 1.7)+, Internet Explorer 4.0+, Netscape Navigator 4.0+, Opera 3.0+, Safari 1.0+.

Contoh:

arrayObj.slice(-5,-1);

Contoh kode di atas akan mengembalikan elemen-elemen array dari elemen kelima yang terakhir sampai dengan elemen kedua yang terakhir.

Contoh di bawah ini awal pengekstrakan di mulai dari indeks ke 1, dan akhir pengekstrakan pada indeks ke 3, jadi elemen yang diekstrak dari elemen diindeks ke 1 sampai dengan elemen diindeks ke 2 saja. Untuk indeks berakhirnya pengekstrakan tidak termasuk elemen yang diekstrak, karena dia hanya menunjukkan indeks akhir pengekstrakan saja:

var numArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; document.write(numArr.slice(1, 3)); // 2,3

Contoh di bawah ini hanya beginIndex saja yang digambarkan dan diberikan nilai positif, maka awal pengekstrakan di mulai dari indeks berdasar beginIndex sampai indeks elemen yang terakhir di dalam array:

var numArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; document.write(numArr.slice(1)); // 2,3,4,5,6,7,8,9,10

Namun jika memberikan nilai negatif untuk beginIndex (misalnya, -3), dan tanpa menetapkan endIndex, itu menyebabkan elemen-elemen yang diekstrak di mulai dari elemen ketiga terakhir sampai dengan elemen terakhir di dalam array:

var numArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; document.write(numArr.slice(-3)); // 8,9,10

Conroh di bawah ini beginIndex dan endIndex bernilai negatif, dan akan mengembalikan elemen-elemen array dari elemen kelima yang terakhir sampai dengan elemen kedua yang terakhir:

var numArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; document.write(numArr.slice(-5,-1)); // 6,7,8,9

Caranya:

  1. Karena beginIndex bernilai negatif (-5), maka ambil sebanyak lima elemen terakhir di dalam array numArr:

    [1,2,3,4,5,6,7,8,9,10]; //6,7,8,9,10

  2. Karena endIndex bernilai negatif (-1), maka ambil dan hapus sebanyak satu elemen terakhir di dalam 6,7,8,9,10 -- yaitu elemen 10-lah yang diambil dan dihapus:

    [6,7,8,9,10]; //10

  3. Terakhir ekstrak elemen-elemen tersebut di mulai dari elemen kelima yang terakhir sampai dengan elemen kedua yang terakhir:

    6,7,8,9

Contoh di bawah ini beginIndex bernilai positif dan endIndex adalah bernilai negatif, dan akan mengembalikan elemen-elemen dari indeks ke 5 sampai dengan elemen kedua yang terakhir:

var numArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; document.write(numArr.slice(5,-1)); // 6,7,8,9

Caranya:

  1. Karena begindIndex bernilai positif, jadi awal pengekstrakan di mulai dari indeks ke 5 (indeks dimulai dari 0 dan bukan 1):

    [1,2,3,4,5,6,7,8,9,10]; //6,7,8,9,10

  2. Karena endIndex bernilai negatif (-1), maka ambil dan hapus sebanyak satu elemen terakhir di dalam 6,7,8,9,10 -- yaitu elemen 10-lah yang diambil dan dihapus:

    [6,7,8,9,10]; //10

  3. Terakhir ekstrak elemen-elemen tersebut di mulai dari elemen diindeks ke 5 sampai dengan elemen kedua yang terakhir:

    6,7,8,9

Contoh di bawah ini beginIndex bernilai negatif dan endIndex adalah bernilai positif, dan akan mengembalikan elemen-elemen di mulai dari elemen lima yang terakhir sampai dengan dan tidak termasuk elemen diindeks ke 8:

var numArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; document.write(numArr.slice(-5, 8)); // 6,7,8

Caranya:

  1. Karena begindIndex bernilai negatif (-5), jadi ambil sebanyak lima elemen terakhir di dalam array numArr:

    [1,2,3,4,5,6,7,8,9,10]; //6,7,8,9,10

  2. Karena endIndex bernilai positif 8, maka indeks ke 8 adalah akhir dari pengekstrakan:

    [1,2,3,4,5,6,7,8,9,10]; //9

  3. Terakhir ekstrak elemen-elemen tersebut di mulai dari elemen lima yang terakhir sampai dengan dan tidak termasuk indeks ke 8, dan hasilnya adalah:

    6,7,8

Meskipun dalam ilustrasi di atas ada kata "dihapus", bukan berarti elemen tersebut dihapus dari array numArr, "dihapus" maksud saya adalah elemen yang nantinya tidak termasuk yang ditampilkan sebagai hasil pengekstrakan.