2017-09-23 2 views
0
  • Je suis nouveau à js.
  • lorsque j'utilise tableau pour la carte de santé méthode fonctionne bien
  • alors que lorsque j'utilise une valeur unique, il jette une erreur. TypeError Uncaught: health.map n'est pas une fonction
  • pouvez-vous me dire comment y remédier ..
  • en fournissant mon code ci-dessous.

entréealors que lorsque j'utilise une valeur unique, il génère une erreur. TypeError Uncaught: health.map n'est pas une fonction

let health =[{ "addedByName":"player", "mobileVersion":"sa,ple.txt" }, 
     { "addedByName":"player", "mobileVersion":"sa,ple.pdf" } 
     ]; 

pas entrée de travail

let health ={ "addedByName":"player", "mobileVersion":"sa,ple.txt" }; 

violon rupture de travail: http://jsfiddle.net/fq9ucpcb/

let health ={ "addedByName":"player", "mobileVersion":"sa,ple.txt" }; 

let types = ["text/plain", "application/pdf"]; 

let downloads = health.map(function(version) { 
        let ext = version.mobileVersion.replace(/.*(?=\.\w+)/, ""); 
+0

Vous ne pouvez pas mapper un objet. Qu'est-ce que tu voulais qu'il fasse? La cartographie n'a de sens que pour les conteneurs séquentiels, ce qui n'est pas le cas des objets simples. – Carcigenicate

Répondre

1

La fonction .map() est disponible uniquement pour les tableaux, ce qui explique pourquoi vous obtenez l'erreur lorsque vous essayez de l'utiliser sur un objet.

Si vous voulez faire une boucle à travers les propriétés d'un objet, vous pouvez utiliser une méthode comme for...in ou Object.keys()

+0

pouvez-vous mettre à jour dans mon violon est tellement confus :( –

1
carte

est méthode prototype pour la classe Array. La méthode map fonctionne sur chaque élément d'un tableau.


santé = {let "addedByName": "joueur", "mobileVersion": "sample.txt"};


« santé » est un objet et que vous essayez d'appeler la carte() sur cette santé Object.So ici vous obtenez l'erreur « Uncaught TypeError: health.map est pas une fonction » signifie cette carte () n'est pas fonction pour Object (santé).

+0

Pouvez-vous mettre à jour dans mon violon .... il est déroutant –

1

"health" n'est pas un Array. La méthode "map" ne peut être utilisée que sur des tableaux. La santé est un objet avec des propriétés, et ces propriétés doivent être uniques. Vous pouvez modifier une propriété en utilisant des accesseurs de propriété comme "." (notation par points) ou propriété [nom de la propriété '] (notation de parenthèse). Si vous avez un objet avec des propriétés similaires, vous pouvez utiliser une boucle "for in" et une expression régulière, ou d'autres méthodes de correspondance de chaîne pour modifier ces valeurs de propriété.

let health = { 
 
    "addedByName": "player", 
 
    "mobileVersion": "sa,ple.txt" 
 
}; 
 

 
let types = ["text/plain", "application/pdf"]; 
 

 
let downloads = health.mobileVersion.replace(/.*(?=\.\w+)/, "") 
 

 
console.log(downloads);

+0

Pouvez-vous mettre à jour dans mon violon .... il est confus –

+0

@texirv votre "fonction de carte" englobe une gamme de En dehors de la portée de cette question, je ne peux pas découpler votre code, vous pouvez peut-être affiner le problème et poser une autre question :) – Rick