Maison > Article > interface Web > Utilisez slice pour encapsuler les méthodes de tableau dans JS
Cet article vous présente l'utilisation de slice pour encapsuler les méthodes de tableau dans JS. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Fonction de la méthode slice
// 1) : Interception du tableau
// 2) :slice(m,n) : À partir de l'index du tableau m, intercepter jusqu'à l'index n, mais non inclus n ;[Inclure avant et pas après]
//slice(m) : à partir de l'index m, intercepter jusqu'à la fin ;
//slice() : clone slice(0) du tableau ;
/ // Indice négatif : Soit la longueur actuelle + nombre négatif ;
// 3) : La valeur de retour est le tableau intercepté
// 4) : Le tableau d'origine ne change pas
/**
* Tout d'abord : clarifier d'abord les différentes situations de slice, l'idée de slice
* Les paramètres passés peuvent être d'autres types de données, à condition qu'ils puissent être convertis en nombres valides (donc les exigences de type de paramètre sont plus flexibles)
* Deuxièmement, il convient de noter que seuls les premier et deuxième paramètres sont des paramètres valides, le troisième paramètre et les suivants n'auront aucun impact sur le résultat intercepté
Traitement des paramètres :
* Donnons le premier paramètre à la variable start, et le deuxième paramètre à la variable end
* 1. Lorsque le paramètre 1 et le paramètre 2 sont tous deux indéfinis ou que l'un d'eux est Cas non défini
* Cas 1 : Lorsque le paramètre 1 est indéfini, prenez directement start=0
* Cas 2 : Lorsque le paramètre 2 n'est pas défini, prenez directement end=this.length
2. Lorsque ni le paramètre 1 ni le paramètre 2 ne sont indéfinis
* Cas 1 : Lorsque le premier paramètre est un nombre négatif : start prend la valeur maximale de this.length et des paramètres lorsque le premier Lorsque le paramètre est supérieur ; supérieur ou égal à 0, start se prend directement
* Cas 2 : Lorsque le deuxième paramètre est un nombre négatif, end prend la somme de this.length et end lorsque le paramètre est supérieur à 0, end prend this.length ; Avec la valeur minimale en fin
Traitement de la longueur de l'intervalle : Définir size=end-start
* Cas 1 : Lorsque la longueur de l'intervalle est inférieure ou égale à 0, renvoyer vide directement Tableau
* Cas 2 : Lorsque la longueur de l'intervalle est supérieure à 0, qu'il s'agisse d'une chaîne ou d'un tableau, créez un tableau d'une longueur de taille, attribuez des valeurs au nouveau tableau du début à la fin, et renvoie le nouveau tableau
@type {Array}
*/
Code ci-joint :
Array.prototype.mySlice = function (start,end) { var newAry = [];//创建一个变量用来接收返回值 var len = this.length;//变量接收当前数组的长度 //先对参数为undefined的情况进行处理 start = (start !== undefined)?start:0; end = (end !== undefined)?end:len; //对于参数的处理,采用三目运算符,由于在与0判断的时候自动转换为数字再进行判断,所以直接与0比较即可 start = (start>=0)?start:Math.max(0,len+start); end = (end>=0)?Math.min(end,len):len+end; var size = end - start;//用一个变量接收截取区间的长度 if(size>0){ //当区间长度大于0时,实例化一个长度为size的数组,并赋值给newAry newAry = new Array(size); //遍历数组,将当前数组[start,end)区间上的值依次赋值给newAry for(var i = 0;i<size;i++){ newAry[i] = this[i+start]; } }else{ //当区间长度小于等于0的情况下,直接返回空数组 return newAry; } return newAry; };
Recommandations associées :
Code JS pour implémenter le sélecteur de date
Compréhension approfondie des fermetures js
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!