Rumah  >  Artikel  >  hujung hadapan web  >  Disyorkan untukEach, $.each, dan kaedah peta dalam kemahiran JS_javascript

Disyorkan untukEach, $.each, dan kaedah peta dalam kemahiran JS_javascript

WBOY
WBOYasal
2016-05-16 15:06:411409semak imbas

forEach ialah kaedah Array yang paling asas dalam ECMA5, iaitu traversal dan gelung. Contohnya, contoh berikut:

[1, 2,3, 4].forEach(maklum);

Bersamaan dengan gelung berikut

var array = [1, 2, 3, 4];
for (var k = 0, length = array.length; k < length; k++) {
 alert(array[k]);
}

Array Dalam kaedah baharu ES5, parameter adalah semua jenis fungsi, dan parameter dihantar secara lalai Indeks yang sepadan, yang ke-3 ialah tatasusunan itu sendiri.

Oleh itu, kami mempunyai:

[].forEach(function(value, index, array) {
  // ...
});

Bandingkan kaedah $.each dalam jQuery:

$.each([], function(index, value, array) {
  // ...
});

Anda akan mendapati bahawa parameter pertama dan kedua adalah betul-betul bertentangan. Perkara yang sama berlaku untuk kaedah yang serupa kemudiannya, seperti $.map.

var data=[1,3,4] ; 
var sum=0 ;
data.forEach(function(val,index,arr){
  console.log(arr[index]==val);  // ==> true
  sum+=val            
})
console.log(sum);          // ==> 8

peta

Peta di sini tidak bermaksud "peta", tetapi "pemetaan". [].map(); Penggunaan asas adalah serupa dengan kaedah forEach:

array.map(callback,[ thisObject]);

Parameter panggilan balik juga serupa:

[].map(function(value, index, array) {
  // ...
});

Fungsi kaedah peta tidak sukar difahami Ia adalah "pemetaan", iaitu tatasusunan asal "dipetakan" ke dalam tatasusunan baharu yang sepadan. Contoh berikut adalah untuk mencari kuasa dua sebutan berangka:

var data=[1,3,4]

var Squares=data.map(function(val,index,arr){
  console.log(arr[index]==val);  // ==> true
  return val*val           
})
console.log(Squares);        // ==> [1, 9, 16]

Nota: Memandangkan forEach dan peta ialah kaedah ECMA5 untuk menambah tatasusunan baharu, penyemak imbas di bawah IE9 belum lagi menyokongnya (IE yang dihormati, bagaimanapun, semua fungsi di atas boleh dicapai dengan memanjangkan prototaip Tatasusunan, seperti Kaedah forEach:

if (typeof Array.prototype.forEach != "function") {
  Array.prototype.forEach = function() {
    /* 实现 */
  };
}

Pengesyoran di atas untuk kaedah forEach, $.each dan peta dalam JS adalah semua kandungan yang dikongsi oleh editor. Saya harap ia boleh memberi rujukan kepada anda dan saya harap anda akan menyokong Script Home.

Kenyataan:
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