Sobes.tech
Junior

Comment peut-on vérifier que ce champ est un tableau?

sobes.tech IA

Réponse de l'IA

Il existe plusieurs façons de vérifier si un champ donné est un tableau :

  1. Array.isArray() : La méthode la plus préférée et moderne.

    // Vérifie si la valeur est un tableau.
    // Retourne true ou false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('chaîne'); // false
    
  2. instanceof Array : Fonctionne pour les tableaux créés dans le cadre actuel.

    // Vérifie si l'objet est une instance de la classe Array.
    // Peut donner des résultats incorrects avec les iframes.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call() : Méthode fiable évitant les problèmes avec instanceof dans différents cadres.

    // Retourne une représentation en chaîne du type de l'objet.
    // Pour les tableaux, retourne "[object Array]".
    Object.prototype.toString.call([]); // "[object Array]"
    Object.prototype.toString.call({}); // "[object Object]"
    Object.prototype.toString.call(null); // "[object Null]"
    Object.prototype.toString.call(undefined); // "[object Undefined]"
    
  4. Vérification de la propriété constructor : Moins fiable, car la propriété constructor peut être modifiée.

    // Vérifie si le constructeur de l'objet est Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

La méthode la plus recommandée et fiable dans la plupart des cas est d'utiliser Array.isArray().