Membina Peta Anda Sendiri, Tapis dan Kurangkan dalam JavaScript

王林
Lepaskan: 2024-07-24 12:24:52
asal
858 orang telah melayarinya

Building Your Own Map, Filter, and Reduce in JavaScript

Dalam siaran ini, kami menyelidiki secara mendalam cara kerja dalaman kuasa JavaScript ini. Kami tidak akan menggunakannya sahaja; kami akan menyahbina dan membina semula mereka, membuat peta tersuai kami sendiri, menapis dan mengurangkan kaedah menggunakan Array.prototype. Dengan membedah fungsi ini, anda akan mendapat cerapan yang tidak ternilai tentang operasinya, melengkapkan anda untuk memanfaatkan keupayaan manipulasi tatasusunan JavaScript dengan cekap.

Kaedah Peta Tersuai:

Kaedah peta dalam JavaScript adalah penting untuk mengubah tatasusunan dengan menggunakan fungsi pada setiap elemen. Mari buat kaedah peta tersuai menggunakan Array.prototype:

// Custom map method for arrays
Array.prototype.customMap = function(callback) {
  const result = [];

  for (let i = 0; i < this.length; i++) {
    result.push(callback(this[i], i, this));
  }

  return result;
};

// Example usage:
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.customMap((num) => num * 2);
console.log(doubledNumbers); // [2, 4, 6, 8, 10]
Salin selepas log masuk

Dalam kaedah peta tersuai ini, kami mengulangi setiap elemen tatasusunan input, menggunakan fungsi panggil balik yang disediakan pada setiap elemen dan menolak hasilnya ke dalam tatasusunan baharu, yang kemudiannya dikembalikan.

Kaedah penapis tersuai:

Kaedah penapis membolehkan penciptaan tatasusunan baharu yang mengandungi elemen yang memenuhi syarat tertentu. Mari buat kaedah penapis tersuai menggunakan Array.prototype:

// Custom filter method for arrays
Array.prototype.customFilter = function(callback) {
  const result = [];

  for (let i = 0; i < this.length; i++) {
    if (callback(this[i], i, this)) {
      result.push(this[i]);
    }
  }

  return result;
};

// Example usage:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.customFilter((num) => num % 2 === 0);
console.log(evenNumbers); // [2, 4]
Salin selepas log masuk

Dalam kaedah penapis tersuai ini, kami mengulangi setiap elemen tatasusunan input, menggunakan fungsi panggil balik yang disediakan pada setiap elemen dan jika panggilan balik kembali benar, kami menambah elemen pada tatasusunan hasil, yang kemudiannya dikembalikan.

Kaedah pengurangan tersuai:

Mencipta kaedah pengurangan tersuai melibatkan pengendalian nilai awal. Mari buat kaedah pengurangan tersuai menggunakan Array.prototype:

// Custom reduce method for arrays
Array.prototype.customReduce = function(callback, initialValue) {
  let accumulator = initialValue === undefined ? this[0] : initialValue;
  const startIndex = initialValue === undefined ? 1 : 0;

  for (let i = startIndex; i < this.length; i++) {
    accumulator = callback(accumulator, this[i], i, this);
  }

  return accumulator;
};

// Example usage:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.customReduce((accumulator, current) => accumulator + current, 0);
console.log(sum); // 15
Salin selepas log masuk

Kini, kami mempunyai kaedah customReduce yang boleh digunakan pada mana-mana tatasusunan. Dalam kaedah pengurangan tersuai ini, kami mengulangi tatasusunan, bermula daripada nilai permulaan yang disediakan atau elemen pertama jika tiada nilai awal diberikan. Kami menggunakan fungsi panggil balik pada setiap elemen, mengemas kini nilai penumpuk pada setiap langkah dan akhirnya mengembalikan hasil terkumpul.

Kesimpulan:

Memahami cara kerja dalaman kaedah tatasusunan JavaScript seperti peta, penapis dan pengurangan adalah penting untuk pembangunan JavaScript yang mahir. Dengan mencipta versi tersuai kaedah ini menggunakan Array.prototype, kami telah mendapat cerapan tentang prinsip asasnya. Kaedah tersuai ini bukan sahaja membantu dalam pemahaman konsep tetapi juga menekankan fleksibiliti dan kuasa JavaScript sebagai bahasa pengaturcaraan.

Atas ialah kandungan terperinci Membina Peta Anda Sendiri, Tapis dan Kurangkan dalam JavaScript. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!