Rumah > hujung hadapan web > tutorial js > Polyfill untuk Kaedah Peta, Penapis dan Kurangkan dalam Javascript

Polyfill untuk Kaedah Peta, Penapis dan Kurangkan dalam Javascript

王林
Lepaskan: 2024-08-16 06:18:12
asal
693 orang telah melayarinya

Polyfill for Map, Filter, and Reduce Methods in Javascript

Peta

Ia mengembalikan tatasusunan baharu daripada tatasusunan asal, dengan melaksanakan beberapa operasi(fungsi panggil balik) pada setiap item tatasusunan. Ia tidak mengubah tatasusunan asal.

const nums = [1, 2, 3, 4];

const double = nums.map((num, i, arr) => num * 2);
console.log(double); // [2, 4, 6, 8]
Salin selepas log masuk

Perlaksanaan

Array.prototype.myMap = function (cb) {
  let output = [];
  for (let i = 0; i < this.length; ++i) {
    output.push(cb(this[i], i, this));
  }
  return output;
};

Salin selepas log masuk

Penapis

Ia mengembalikan tatasusunan baharu yang mengandungi hanya elemen yang memenuhi syarat yang diberikan (iaitu, yang panggilan balik itu mengembalikan benar). Tatasusunan asal kekal tidak berubah.

const nums= [1, 2, 3, 4];

const greaterThan2 = nums.filter((num, i, arr) => num > 2);
console.log(greaterThan2); // [3, 4]
Salin selepas log masuk

Perlaksanaan

Array.prototype.myFilter = function (cb) {
  let output = [];
  for (let i = 0; i < this.length; ++i) {
    if (cb(this[i], i, this)) output.push(this[i]);
  }
  return output;
};
Salin selepas log masuk

Kurangkan

Ia mungkin yang paling rumit daripada ketiga-tiganya. Kaedah ini memproses elemen tatasusunan untuk menghasilkan nilai output tunggal.

const nums = [1, 2, 3, 4];

const sum = nums.reduce((acc, num) => acc + num, 0);

console.log(sum); // 10
Salin selepas log masuk

Perlaksanaan

Array.prototype.myReduce = function (cb, initialValue) {
  let accumulator = initialValue;
  for (let i = 0; i < this.length; ++i) {
    accumulator = accumulator!== undefined ? cb(accumulator, this[i], i, this) : this[i];
  }
  return accumulator;
};
Salin selepas log masuk

Atas ialah kandungan terperinci Polyfill untuk Kaedah Peta, Penapis 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