IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Méthode filter de l'objet array


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut Méthode filter de l'objet array
    Bonjour,

    J'essaie de faire fonctionner ce petit programme sur IE 8 et j'ai un message d'erreur

    "Cet objet ne gère pas cette propriété ou cette méthode"

    La Méthode filter de l'objet array est-elle compatible avec IE 8

    Voici le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function isBigEnough(element, index, array) {   
      return (element >= 10);   
    }   
    var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    filter est propriétaire ffx ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <script type="text/javascript">
    function isBigEnough(value,limit){
    return (value>limit)
    }
     
    Array.prototype.MyFilter=function(filtre) {   
    var temparray=new Array();
    var i=0
    while(this[i++]){
    alert(filtre(this[i-1],10))
    if (filtre( this[i-1],10)){temparray.push(this[i-1])}
    }  
    return temparray;
    }
     
    var filtered = new Array(12, 5, 8, 130, 44).MyFilter(isBigEnough);  
     
    alert(filtered)</script>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Pour être un tout petit peu plus précis , filter est défini dans JavaScript 1.6, pas encore implémenté par certains navigateurs dont IE, et partiellement par d'autres, dont Chrome.

    ERE

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Par défaut
    Pour être encore plus précis et rigoureux je conseille de prendre l'implémentation filter fournie sur le site de MDC :
    https://developer.mozilla.org/en/Cor...s/Array/filter

    et d'autre part l'appeler filter et non myfilter, en testant si cette methode existe sur Array.prototype comme le fait MDC.
    Ci dessous le code fourni dans le lien indiqué ci-dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    if (!Array.prototype.filter)
    {
      Array.prototype.filter = function(fun /*, thisp*/)
      {
        var len = this.length >>> 0;
        if (typeof fun != "function")
          throw new TypeError();
     
        var res = [];
        var thisp = arguments[1];
        for (var i = 0; i < len; i++)
        {
          if (i in this)
          {
            var val = this[i]; // in case fun mutates this
            if (fun.call(thisp, val, i, this))
              res.push(val);
          }
        }
     
        return res;
      };
    }
    Donc spacefrog je te conseille de plutôt indiquer cet exemple que le tiens qui même s'il reste correct ne permettra pas d'utiliser filter tel qu'il est normé dans javascript 1.6

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    N.B. je ne cherchais pas à émuler le filter, mais juste proposer une solution repondant à la question filtrer un array avec une fonction > 10
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    N.B. je ne cherchais pas à émuler le filter, mais juste proposer une solution repondant à la question filtrer un array avec une fonction > 10
    Tu me copieras 100x :
    Je ne dois pas mettre de majuscule au nom de ma méthode.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] ajout méthodes sur l'objet Array
    Par kimcharlene dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/04/2008, 16h40
  2. [c#] Méthode d'accès aux objets de ma form1
    Par SDuh dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/03/2006, 11h21
  3. [VBA-E]La méthode 'Range' de l'objet '_Global' a échoué
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/02/2006, 16h00
  4. Réponses: 4
    Dernier message: 20/01/2006, 15h53
  5. Méthode Free d'un objet
    Par WebPac dans le forum Composants VCL
    Réponses: 3
    Dernier message: 12/10/2004, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo