Rumah >hujung hadapan web >tutorial js >Apakah kaedah baharu tatasusunan ECMA5 dan kemahiran implementasi_javascript tiruan forEach().
Berikut ialah contoh kod untuk memperkenalkan kepada anda pelaksanaan tiruan kaedah baharu untukEach() tatasusunan ECMA5 Kod khusus adalah seperti berikut,
var o = { forEach: function (callback) { // alert(this.length); for (var i = , len = this.length; i < len; i++) { callback && callback(this[i], i, this); } }, get length(){ var sum=; for(var n in this) { sum+=; } return sum; } }; Object.defineProperty(o,"length",{enumerable:false}); Object.defineProperty(o,"forEach",{enumerable:false}); o[] = ; o[] = ; o[] = ; o.forEach(function(v,i,arr){ arr[i]=v+; console.log(arr[i]+"callback"); });
Perlu diperhatikan:
1. Penggunaan fungsi panggil balik
2. Maksud defineProperty dan defineProperties fungsi
Kedua-dua fungsi ini boleh mentakrifkan empat ciri utama sifat objek-nilai, kebolehtulisan, kebolehbilangan dan kebolehkonfigurasian
Saya masih mempunyai sedikit masa untuk memperkenalkan kepada anda beberapa kaedah tatasusunan baharu dalam ECMA5 seperti berikut:
Semasa saya melakukan latihan hari ini, saya terjumpa fitter(); Saya telah melihat kaedah tatasusunan baharu ini sebelum ini, tetapi ia tidak pernah digunakan dalam pertempuran sebenar, jadi saya akan menyemaknya hari ini;
forEaach()
Kaedah ini merentasi tatasusunan dari awal hingga akhir, dan kemudian memanggil fungsi yang ditentukan untuk setiap elemen dalam tatasusunan. Fungsi ini berfungsi sebagai parameter pertama foreach. Fungsi yang dipanggil boleh mempunyai tiga parameter, iaitu elemen tatasusunan semasa, indeks elemen semasa dan tatasusunan yang dilalui Jika terdapat hanya satu parameter, maka parameter ini ialah elemen tatasusunan semasa.
var data = [1,2,3,4,5] ; // 计算数组的和 var sum = 0 ; data.forEach(function(value){sum += value; }); // 这里的value 分别代指 data[0~4]; console.log( sum ) // 15 // 每个数组元素自加1 data.forEach(function(v, i, a){ a[i] = v + 1; }) // v 分别代指 data[0~4]; a 代指data; map() ;
Kaedah map() menghantar setiap elemen tatasusunan yang dipanggil ke fungsi yang ditentukan dan mengembalikan tatasusunan (format yang sama seperti tatasusunan panggilan), yang mengandungi nilai pulangan fungsi : Ia mesti mempunyai nilai pulangan dan tidak mengubah tatasusunan ia dipanggil.
var a = [1,2,3]; b = a.map(function(x) { return x * x; }); filter()
var getNum = function (a, b, k) { return a.filter(function (v) {return b.indexOf(v) > -1;})[k-1]; } var A = [3,4,5,6,7,8,9]; var B = [12,10,8,6]; console.log(getNum(A, B, 1)) console.log(getNum(A, B, 2)); every() some() ;
Dalam setiap()Hanya apabila semua elemen tatasusunan memanggil fungsi penghakiman dan mengembalikan benar, nilai pulangan adalah benar dengan &;;
Dalam sesetengah(), selagi satu elemen tatasusunan memanggil fungsi penghakiman sebagai benar, ia akan kembali benar.