Maison > interface Web > js tutoriel > le corps du texte

Utilisez slice pour encapsuler les méthodes de tableau dans JS

不言
Libérer: 2018-07-20 09:34:22
original
1883 Les gens l'ont consulté

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;
    };
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal