Monday, June 18, 2012

splice()

Metode Array.splice() akan mengubah isi dari array, yaitu dengan menyisipkan, meremove, dan mengganti elemen lama dengan elemen baru. Nilai yang dikembalikan Array.splice() adalah elemen atau elemen-elemen yang diremove.

Sintaks:

arrayObj.splice(index, howMany, element0, ..., elementN)
  • index menetapkan indeks untuk memulai, nilainya tidak boleh negatif.
  • howMany menetapkan banyaknya elemen lama yang di remove terhitung dari parameter index. Jika howMany adalah 0, maka tidak ada elemen yang lama di remove.
  • element0, ..., elementN (opsional) menambahkan elemen baru yang nantinya disisipkan untuk menggantikan elemen lama yang diremove.

Metode Array.splice() 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 jika saya mempunyai array sebagai berikut:

var numArr = [1,2,3,4,5,6,7,8,9,10];

Terus saya mengatur metode Array.splice() seperti ini, dan mengembalikan 3,4,5:

document.write(numArr.splice(2,3)); // 3,4,5

Untuk 3,4,5 ini di dapat dari:

  1. Pertama-tama menentukan indeks untuk memulainya, berdasarkan di atas nilai parameter index diberikan nilai 2, jadi akan dimulai dari indeks ke 2:

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

    Untuk di atas 1 memiliki indeks ke 0, 2 memiliki indeks ke 1, dan 3 memiliki indeks ke 2, dst. Jadi indeks untuk memulainya ada di angka 3.

  2. Parameter howMany berisi nilai 3, jadi sebanyak 3 elemen ke kanan dan terhitung dari parameter index yang akan diremove, seperti yang diberikan warna merah di bawah ini:

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

  3. Jadi elemen-elemen yang diremove adalah 3,4,5, dan 3,4,5 inilah yang dikembalikan oleh metode Array.splice().

Coba gunakan Array.toString() untuk menampilkan elemen-elemen di dalam array numArr ke dalam bentuk string setelah adanya elemen-elemen lama yang diremove:

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

Gunakan parameter optional jika ingin menyisipkan elemen baru. Sebagai contoh elemen baru yang akan disisipkan adalah 11, 12, 13. Nantinya ketiga elemen baru tersebut menggantikan elemen-elemen lama yang diremove secara berurutan:

var numArr = [1,2,3,4,5,6,7,8,9,10]; numArr.splice(2,3, 11, 12, 13); document.write(numArr.toString()); // 1,2,11,12,13,6,7,8,9,10

Jika menyisipkan elemen baru dan anda memberikan nilai 0 untuk howMany, maka elemen-elemen baru akan disisipkan di mulai pada indeks yang ditetapkan di parameter index.

Contoh:

var numArr = [1,2,3,4,5,6,7,8,9,10]; numArr.splice(2,0, 11, 12, 13); document.write(numArr.toString()); // 1,2,11,12,13,3,4,5,6,7,8,9,10

Jika menetapkan parameter index saja dan tanpa menetapkan parameter howMany, maka elemen yang diremove terhitung dari parameter index sampai dengan elemen terakhir di dalam array.

Contoh:

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