Rumah > hujung hadapan web > tutorial js > Soalan Algoritma JavaScript Penting untuk Amalan

Soalan Algoritma JavaScript Penting untuk Amalan

WBOY
Lepaskan: 2024-08-28 06:05:32
asal
320 orang telah melayarinya

Essential JavaScript Algorithm Questions for Practice

Sama ada anda sedang bersedia untuk temu duga pengekodan atau ingin mempertajam kemahiran menyelesaikan masalah anda, mempraktikkan algoritma adalah kunci untuk menguasai JavaScript. Algoritma bukan sahaja untuk pembangun lanjutan—ia adalah asas untuk memahami cara memanipulasi data dan mengoptimumkan prestasi dalam aplikasi anda.

Dalam siaran ini, kami akan meneroka beberapa soalan algoritma JavaScript penting yang harus dipraktikkan oleh setiap pembangun. Soalan ini merangkumi pelbagai topik, daripada manipulasi tatasusunan asas kepada pengendalian rentetan yang lebih kompleks, memberikan anda asas yang kukuh untuk menangani masalah yang lebih lanjut.


1. Terbalikkan Rentetan

Masalah:
Tulis fungsi yang mengambil rentetan sebagai input dan mengembalikan rentetan terbalik.

Contoh:

// Input: "hello"
// Output: "olleh"
Salin selepas log masuk

Penyelesaian:
Terdapat pelbagai cara untuk membalikkan rentetan dalam JavaScript. Salah satu kaedah paling mudah ialah membahagikan rentetan kepada tatasusunan aksara, membalikkan tatasusunan itu dan kemudian menyambungkannya semula menjadi rentetan.

function reverseString(str) {
  return str.split('').reverse().join('');
}

console.log(reverseString("hello")); // Output: "olleh"
Salin selepas log masuk

2. Semak Palindrom

Masalah:
Palindrom ialah perkataan atau frasa yang dibaca sama ke belakang dengan ke hadapan. Tulis fungsi untuk menyemak sama ada rentetan yang diberikan ialah palindrom.

Contoh:

// Input: "racecar"
// Output: true

// Input: "hello"
// Output: false
Salin selepas log masuk

Penyelesaian:
Anda boleh menggunakan semula kaedah pembalikan rentetan untuk menyemak sama ada rentetan asal adalah sama dengan rentetan sebaliknya.

function isPalindrome(str) {
  const reversedStr = str.split('').reverse().join('');
  return str === reversedStr;
}

console.log(isPalindrome("racecar")); // Output: true
console.log(isPalindrome("hello"));   // Output: false
Salin selepas log masuk

3. Cari Nombor Terbesar dalam Tatasusunan

Masalah:
Tulis fungsi yang mengambil tatasusunan nombor sebagai input dan mengembalikan nombor terbesar.

Contoh:

// Input: [1, 2, 3, 4, 5]
// Output: 5
Salin selepas log masuk

Penyelesaian:
Anda boleh menggunakan kaedah Math.max dalam kombinasi dengan operator spread untuk mencari nombor terbesar.

function findLargest(arr) {
  return Math.max(...arr);
}

console.log(findLargest([1, 2, 3, 4, 5])); // Output: 5
Salin selepas log masuk

4. FizzBuzz

Masalah:
Tulis fungsi yang mencetak nombor daripada 1 hingga 100. Tetapi untuk gandaan tiga, cetak "Fizz" dan bukannya nombor, dan untuk gandaan lima, cetak "Buzz". Untuk nombor yang merupakan gandaan tiga dan lima, cetak "FizzBuzz".

Penyelesaian:
Ini ialah soalan temu duga klasik yang menguji keupayaan anda untuk melaksanakan gelung asas dan syarat.

function fizzBuzz() {
  for (let i = 1; i <= 100; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
      console.log("FizzBuzz");
    } else if (i % 3 === 0) {
      console.log("Fizz");
    } else if (i % 5 === 0) {
      console.log("Buzz");
    } else {
      console.log(i);
    }
  }
}

fizzBuzz();
Salin selepas log masuk

5. Memfaktorkan Nombor

Masalah:
Tulis fungsi yang mengembalikan faktorial bagi suatu nombor. Faktorial bagi nombor n ialah hasil darab semua integer positif kurang daripada atau sama dengan n.

Contoh:

// Input: 5
// Output: 120 (5 * 4 * 3 * 2 * 1)
Salin selepas log masuk

Penyelesaian:
Faktorial boleh diselesaikan secara rekursif atau berulang. Berikut ialah contoh menggunakan rekursi:

function factorialize(num) {
  if (num === 0 || num === 1) {
    return 1;
  } else {
    return num * factorialize(num - 1);
  }
}

console.log(factorialize(5)); // Output: 120
Salin selepas log masuk

6. Cari Perkataan Terpanjang dalam Rentetan

Masalah:
Tulis fungsi yang mengambil rentetan sebagai input dan mengembalikan panjang perkataan terpanjang.

Contoh:

// Input: "The quick brown fox jumped over the lazy dog"
// Output: 6 (jumped)
Salin selepas log masuk

Penyelesaian:
Anda boleh membelah rentetan kepada tatasusunan perkataan dan kemudian mengurangkan tatasusunan untuk mencari perkataan terpanjang.

function findLongestWord(str) {
  const words = str.split(' ');
  let maxLength = 0;

  for (let word of words) {
    if (word.length > maxLength) {
      maxLength = word.length;
    }
  }

  return maxLength;
}

console.log(findLongestWord("The quick brown fox jumped over the lazy dog")); // Output: 6
Salin selepas log masuk

7. Alih Keluar Pendua daripada Tatasusunan

Masalah:
Tulis fungsi yang mengalih keluar nilai pendua daripada tatasusunan.

Contoh:

// Input: [1, 2, 2, 3, 4, 4, 5]
// Output: [1, 2, 3, 4, 5]
Salin selepas log masuk

Penyelesaian:
Salah satu cara paling mudah untuk mengalih keluar pendua ialah menggunakan Set, yang hanya menyimpan nilai unik.

function removeDuplicates(arr) {
  return [...new Set(arr)];
}

console.log(removeDuplicates([1, 2, 2, 3, 4, 4, 5])); // Output: [1, 2, 3, 4, 5]
Salin selepas log masuk

Kesimpulan

Mempraktikkan soalan algoritma JavaScript asas ini akan meningkatkan kemahiran menyelesaikan masalah anda dan menyediakan anda untuk cabaran yang lebih maju. Dengan menguasai asas ini, anda akan lebih bersedia untuk menangani algoritma dan struktur data yang kompleks, yang penting untuk menulis kod yang cekap dan boleh skala. Teruskan berlatih dan anda akan melihat peningkatan dalam kedua-dua kelajuan dan ketepatan pengekodan anda!

Selamat Mengekod??

Atas ialah kandungan terperinci Soalan Algoritma JavaScript Penting untuk Amalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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