Ce qui suit est un exemple de code pour vous présenter l'implémentation d'imitation de la nouvelle méthode forEach() des tableaux ECMA5. Le code spécifique est le suivant,
.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"); });
Il est à noter :
1. Utilisation de la fonction de rappel
2.La signification des fonctions définirProperty et définirProperties
Ces deux fonctions peuvent définir les quatre caractéristiques principales des propriétés d'un objet : valeur, écriture, énumérabilité et configurabilité
J'ai encore un peu de temps pour vous présenter plusieurs nouvelles méthodes de tableaux en ECMA5 comme suit :
Quand je faisais des exercices aujourd'hui, je suis tombé sur fitter(); J'ai déjà vu ces nouvelles méthodes de tableaux, mais elles n'ont jamais été utilisées en combat réel, je vais donc les revoir aujourd'hui
pourEaach()
Cette méthode parcourt un tableau du début à la fin, puis appelle la fonction spécifiée pour chaque élément du tableau. Cette fonction sert de premier paramètre de foreach. La fonction appelée peut avoir trois paramètres, qui sont l'élément actuel du tableau, l'index de l'élément actuel et le tableau parcouru. S'il n'y a qu'un seul paramètre, alors ce paramètre est l'élément actuel du tableau.
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() ;
La méthode map() transmet chaque élément du tableau appelé à la fonction spécifiée et renvoie un tableau (exactement au même format que le tableau appelant), qui contient la valeur de retour de la fonction. : Il doit avoir une valeur de retour et ne pas modifier le tableau à partir duquel il est appelé.
var a = [1,2,3]; b = a.map(function(x) { return x * x; }); filter()
La valeur de retour de cette fonction est un sous-ensemble de la fonction appelante, car l'expression fonctionnelle qui lui est transmise est utilisée pour faire des jugements logiques. Si elle est vraie, la valeur actuelle est poussée dans le tableau de sous-ensembles pour être renvoyée.
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() ;
Les paramètres de ces deux fonctions sont à la fois une fonction de jugement, qui juge les éléments du tableau, et la valeur de retour est vraie ou fausse ;
In each()Seulement lorsque tous les éléments du tableau appellent la fonction de jugement et renvoient true, la valeur de retour est quelque peu similaire à &;
;Dans some(), tant qu'un élément du tableau appelle la fonction de jugement comme étant vraie, elle retournera vrai.