Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Cari jumlah kardinaliti tatasusunan menggunakan JavaScript

Cari jumlah kardinaliti tatasusunan menggunakan JavaScript

PHPz
Lepaskan: 2023-05-17 18:54:07
asal
715 orang telah melayarinya

Dalam pengaturcaraan JavaScript, kita biasanya perlu melakukan pelbagai operasi pada tatasusunan. Antaranya, soalan biasa ialah bagaimana untuk mencari jumlah radix tatasusunan. Jumlah radix ialah jumlah semua nilai ganjil dalam tatasusunan. Dalam artikel ini, kita akan belajar cara menyelesaikan jumlah radix tatasusunan menggunakan JavaScript dan menyediakan beberapa cara berbeza untuk menyelesaikannya.

Kaedah 1: Lintas tatasusunan dan kumpulkan satu demi satu

Kaedah ini sangat mudah. ​​Kita hanya perlu menggunakan gelung for untuk melintasi keseluruhan tatasusunan menjadi nombor ganjil, tambahkannya pada asas dan dalam penumpuk. Berikut ialah kod untuk melaksanakan kaedah ini:

function oddSum(arr) {
  let sum = 0; // 定义累加器,初始值为0
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] % 2 !== 0) { // 如果当前值是奇数
      sum += arr[i]; // 将其加入累加器中
    }
  }
  return sum; // 返回基数和
}
Salin selepas log masuk

Kelebihan kaedah ini ialah ia mudah, langsung dan mudah difahami. Walau bagaimanapun, kecekapannya tidak tinggi, terutamanya apabila tatasusunan agak besar, akan ada masalah prestasi.

Kaedah 2: Gunakan Array.prototype.reduce()

Terdapat fungsi lanjutan terbina dalam Array.prototype.reduce() dalam JavaScript, yang boleh mengumpul setiap elemen tatasusunan dalam elemen fungsi, akhirnya mengembalikan nilai. Kita boleh menggunakannya untuk menyelesaikan jumlah asas. Berikut ialah kod yang dilaksanakan menggunakan kaedah reduce:

function oddSum(arr) {
  return arr.reduce((sum, cur) => {
    if (cur % 2 !== 0) {
      return sum + cur;
    } else {
      return sum;
    }
  }, 0);
}
Salin selepas log masuk

Prinsip fungsi ini adalah sama seperti kaedah 1. Perbezaannya ialah fungsi lelaran tatasusunan terbina dalam digunakan untuk menjadikan kod lebih ringkas dan lebih mudah dibaca. Pada masa yang sama, kaedah ini lebih cekap daripada kaedah 1 kerana ia mengambil kesempatan daripada algoritma pengoptimuman terbina dalam JavaScript.

Kaedah 3: Gunakan Array.prototype.filter() dan Array.prototype.reduce()

Kaedah lain ialah menggunakan Array.prototype.filter() dahulu untuk memilih semua elemen dalam tatasusunan nombor ganjil, kemudian gunakan Array.prototype.reduce() untuk menjumlahkan elemen ini. Berikut ialah kod untuk melaksanakan kaedah ini:

function oddSum(arr) {
  const oddArr = arr.filter(num => num % 2 !== 0); // 选择出所有的奇数
  const sum = oddArr.reduce((sum, cur) => sum + cur, 0); // 将这些元素求和
  return sum; // 返回基数和
}
Salin selepas log masuk

Kaedah ini mungkin lebih perlahan sedikit daripada kaedah dua kerana ia memerlukan dua gelung. Walau bagaimanapun, pendekatan ini sangat mudah dibaca dan mudah difahami. Sekali lagi, ia menggunakan algoritma pengoptimuman terbina dalam JavaScript, jadi prestasinya masih sangat tinggi.

Ringkasan

Dalam artikel ini, kami memperkenalkan tiga kaedah untuk menyelesaikan jumlah radix tatasusunan JavaScript. Ketiga-tiga kaedah adalah sah, tetapi mereka masing-masing mempunyai kebaikan dan keburukan sendiri. Kami mengesyorkan memilih kaedah yang paling sesuai dengan anda berdasarkan situasi sebenar anda. Selepas memilih kaedah, kita boleh menggunakan beberapa alatan untuk menguji prestasi kod, seperti fungsi console.time() dan console.timeEnd(), untuk mengetahui masa pelaksanaannya.

Ringkasnya, kami berharap pembaca dapat memahami cara menggunakan JavaScript untuk menyelesaikan jumlah radix tatasusunan dan menguasai beberapa teknik biasa. Menggunakan petua ini, anda boleh mengendalikan pelbagai operasi tatasusunan dengan mudah dan meningkatkan kemahiran pengaturcaraan anda.

Atas ialah kandungan terperinci Cari jumlah kardinaliti tatasusunan menggunakan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan