Rumah >hujung hadapan web >tutorial js >Helah push_javascript simulasi JavaScript

Helah push_javascript simulasi JavaScript

WBOY
WBOYasal
2016-05-16 15:12:021240semak imbas

Tugas: Mula-mula saya menentukan pembolehubah var arr = [0,1,2,3,4,5]; kita Apa yang patut dilakukan? Saya akan memberi anda 5 minit untuk berfikir. Tolong jangan memandang rendah sebelum anda memikirkannya.

Analisis: Kami ingin menambah sesuatu pada penghujung tatasusunan ini, bukan? Jangan pertimbangkan kedudukan terakhir dahulu Mari kita fikirkan bagaimana kita biasanya mengakses kandungan array Adakah ia seperti arr[n] ini, bukan? secara ringkasnya, jika tiada indeks sedemikian, ia akan menjadi tidak ditentukan Jika kita terus menambah 1 pada indeks tatasusunan ini, maka jika undefined muncul, adakah itu kedudukan yang kita cari Walaupun kaedah ini OK, saya mempunyai a cara yang lebih baik untuk menggunakan Atribut panjang boleh mendapatkan panjang tatasusunan ini Kemudian panjang ini ialah indeks tatasusunan ini + 1. Kami hanya mahu menambah kandungan pada indeks ini.

Kod:

var arr = [0,1,2,3,4,5];
arr.length 获取这个数组的最后位置

Tugas: Sekarang kita telah memperoleh kedudukan terakhir tatasusunan, kita boleh menambah kandungan padanya Jadi bagaimana untuk menambahnya? Kepada siapa hendak ditambah dan bagaimana hendak ditambah.

Analisis: Sekarang fikirkan tentang cara untuk menambah kandungan pada tatasusunan? Panjang yang diperoleh adalah kedudukan yang ingin kita tambah.

Sintesis:

var arr = [0,1,2,3,4,5];
function Push(value){
arr[arr.length] = value;
}
Push(6);
console.log(arr); //[0, 1, 2, 3, 4, 5, 6]

Tugas: Walaupun kini anda boleh menambah kandungan padanya, anda hanya boleh menambah satu demi satu. Apa yang perlu saya lakukan?

Analisis: Saya merindui rakan lama saya kerana tiba-tiba rakan lama ini boleh membantu kita menyelesaikan beberapa perkara yang berulang, jadi mari minta dia membantu kita.

Kod:

Analisis: Bagaimana kita harus menulis ini? Berapa lebih kecil saya? Adakah ia sama banyak seperti yang kita tambahkan? Jadi berapa bit yang perlu kita tambah? Nampaknya kita benar-benar tidak tahu, tetapi rakan lama tahu bahawa dia adalah hujah, yang boleh mendapatkan parameter yang kita lalui, dan ia adalah tatasusunan pseudo, yang bermaksud bahawa ia juga boleh menggunakan atribut panjang seperti tatasusunan untuk mendapatkan parameter yang kita lalui. Panjang parameter sebenar.

Kod:

for(var i=0;i<arguments.length;i++){}

Analisis: Jadi sekarang persoalannya, apakah kandungan yang kita tambahkan di mana Kembali ke tugasan kita, adakah kita mahu menambah kandungan yang kita hantar ke kedudukan terakhir tatasusunan , jadi bagaimana untuk mendapatkan kandungan itu? kita lulus dalam? Kita seolah-olah telah berkata bahawa hujah boleh mendapatkan kandungannya.

Kod:

var arr = [0,1,2,3,4,5];
function Push{
for(var i=0;i<arguments.length;i++){
arr[arr.length] = arguments[i];
}
}
Push(6,7,8);

Selesai.

Peluasan ekstrakurikuler: rakan yang mempunyai pengetahuan asas
Ok, walaupun tugasan telah selesai, masalahnya sekarang ialah kod ini hanya boleh melayani array arr Jika kita ingin menyediakan fungsi ini untuk semua tatasusunan, kita perlu menambah kaedah ini pada prototaip Array.

var arr = [0,1,2,3,4,5];

Array.prototype.Push = function{
for(var i=0;i<arguments.length;i++){
this[this.length] = arguments[i];
}
}
arr.Push(1,2,3)

Tukar arr dalam kepada ini. Ini bermakna sesiapa yang memanggilnya Jika anda ingin mengetahui lebih lanjut tentang ini, anda boleh membaca untuk memahami sepenuhnya perkara ini dalam js.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn