Dalam JavaScript, anda boleh menggunakan atribut panjang untuk mendapatkan panjang tatasusunan, sintaks ialah "objek.length tatasusunan" anda boleh menggunakan fungsi reduce() atau reduceRight() untuk mencari jumlah elemen, sintaksnya ialah "arr.reduce(fungsi f (pra,curr){return pra cur})" atau "arr.reduceRight(fungsi f(pra,curr){return pra cur})".
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
JavaScript untuk mencari panjang tatasusunan
Dalam JavaScript, anda boleh menggunakan sifat panjang objek tatasusunan untuk mendapatkan panjang tatasusunan.
Setiap tatasusunan mempunyai atribut panjang, yang mengembalikan panjang maksimum tatasusunan, iaitu nilainya bersamaan dengan nilai subskrip maksimum tambah 1. Oleh kerana subskrip berangka mestilah kurang daripada 2^32-1, nilai maksimum atribut panjang adalah sama dengan 2^32-1.
Contoh 1
Kod berikut mentakrifkan tatasusunan kosong, dan kemudian memberikan nilai kepada elemen dengan subskrip sama dengan 100, kemudian atribut panjang mengembalikan 101. Oleh itu, atribut panjang tidak boleh menggambarkan bilangan sebenar elemen tatasusunan.
var a = []; //声明空数组 a[100] = 2; console.log(a.length); //返回101
Output:
101
Sifat panjang boleh dibaca dan boleh ditulis serta merupakan sifat dinamik. Nilai atribut panjang juga dikemas kini secara automatik apabila elemen tatasusunan berubah. Pada masa yang sama, jika nilai atribut panjang ditetapkan semula, ia juga akan mempengaruhi elemen tatasusunan Arahan khusus adalah seperti berikut:
Jika atribut panjang ditetapkan kepada nilai yang lebih kecil daripada panjang semasa. nilai, tatasusunan akan dipotong, dan panjang baharu akan menjadi Semua nilai elemen lain akan hilang.
Jika sifat panjang ditetapkan kepada nilai yang lebih besar daripada nilai panjang semasa, maka tatasusunan kosong akan ditambahkan pada penghujung tatasusunan, menyebabkan tatasusunan berkembang kepada panjang yang baru ditentukan dan bacaan nilai tidak akan ditentukan.
Contoh 2
Kod berikut menunjukkan kesan perubahan dinamik dalam nilai atribut panjang pada tatasusunan.
var a = [1,2,3]; //声明数组直接量 a.length = 5; //增长数组长度 console.log(a[4]); //返回undefined,说明该元素还没有被赋值 a.length = 2; //缩短数组长度 console.log(a[2]); //返回undefined,说明该元素的值已经丢失
Output:
undefined undefined
JavaScript untuk mencari jumlah tatasusunan
Kaedah 1 : Gunakan reduce()
reduce() mengira elemen tatasusunan menjadi nilai (dari kiri ke kanan).
var a = [1, 2, 3, 4, 5]; var b =a.reduce(function f(pre, curr){ return pre + curr; }); console.log(b);
Penerangan: Kaedah
reduce() boleh memanggil fungsi panggil balik yang ditentukan untuk semua elemen dalam tatasusunan. Nilai pulangan bagi fungsi panggil balik ini ialah hasil terkumpul, dan nilai pulangan ini disediakan sebagai parameter pada kali berikutnya fungsi panggil balik dipanggil. Penggunaan khusus adalah seperti berikut:
array.reduce(callbackfn[, initialVaule]);
Penerangan parameter:
tatasusunan: parameter yang diperlukan, objek tatasusunan.
callbackfn: parameter yang diperlukan, fungsi yang menerima sehingga empat parameter. Kaedah recover() memanggil fungsi callbackfn sekali untuk setiap elemen dalam tatasusunan.
initialVaule: Parameter pilihan, jika initialVaule ditentukan, ia akan digunakan sebagai nilai awal untuk memulakan pengumpulan. Panggilan pertama ke fungsi callbackfn membekalkan nilai ini sebagai parameter dan bukannya nilai tatasusunan.
Nilai pulangan kaedah reduce() ialah hasil kumulatif yang diperolehi oleh panggilan terakhir ke fungsi panggil balik.
Jika parameter initialVaule disediakan, kaedah reduce() akan memanggil fungsi callbackfn sekali untuk setiap elemen dalam tatasusunan (dalam susunan indeks menaik jika initialVaule tidak disediakan, kaedah reduce() akan panggil fungsi callbackfn sekali untuk setiap elemen dalam tatasusunan Fungsi callbackfn dipanggil untuk setiap elemen bermula daripada 2 elemen.
Nilai pulangan fungsi panggil balik disediakan sebagai parameter nilai sebelumnya apabila fungsi panggil balik dipanggil seterusnya. Nilai pulangan yang diperoleh daripada panggilan terakhir kepada fungsi panggil balik ialah nilai pulangan kaedah recude(). Kaedah ini tidak memanggil fungsi panggil balik untuk elemen yang hilang dalam tatasusunan.
Sintaks fungsi panggil balik adalah seperti berikut:
function callbackfn(previousValue, currentVaule, currentIndex, array);
Penerangan parameter fungsi panggil balik:
previousValue: nilai yang diperoleh oleh yang terakhir panggil ke fungsi panggil balik. Jika initialValue diberikan kepada kaedah reduce(), previousValue ialah initialValue apabila fungsi pertama kali dipanggil.
currentVaule: Nilai tatasusunan elemen semasa.
currentIndex: Indeks berangka elemen tatasusunan semasa.
tatasusunan: Objek tatasusunan yang mengandungi unsur.
Apabila fungsi panggil balik pertama kali dipanggil, nilai yang diberikan sebagai argumen bergantung pada sama ada kaedah reduce() mempunyai argumen initialValue. Jika initialValue diberikan kepada kaedah recude(), parameter previousValue ialah initialValue dan parameter currentValue ialah nilai elemen pertama dalam tatasusunan.
Kaedah 2: Gunakan reduceRight()
reduceRight() untuk mengira elemen tatasusunan menjadi nilai (dari kanan ke kiri).
var arr = [1, 2, 3, 4, 5, 5]; var b =arr.reduceRight(function f(pre, curr){ return pre + curr; }); console.log(b);
Penerangan: Kaedah
reduceRight() boleh memanggil fungsi panggil balik yang ditentukan pada semua elemen dalam tatasusunan dari kanan ke kiri. Nilai pulangan bagi fungsi panggil balik ini ialah hasil terkumpul, dan nilai pulangan ini disediakan sebagai parameter pada kali berikutnya fungsi panggil balik dipanggil. Penggunaan khusus adalah seperti berikut:
array.reduceRight(callbackfn[, initialValue]);
该方法的语法和用法与 reduce() 方法大概相同,唯一不同的是,它是从数组右侧开始调用回调函数。如果提供了 initialValue,则 reduceRight() 方法会按降序索引顺序对数组中的每个元素调用一次 callbackfn 函数。如果未提供 initialValue,则 reduceRight() 方法会按降序索引顺序对每个元素(从倒数第 2 个元素开始)调用 callbackfn 函数。
【相关推荐:javascript视频教程、web前端开发】
Atas ialah kandungan terperinci Bagaimana untuk mencari panjang dan jumlah elemen tatasusunan dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!