Quel est le concept de Tableau.carte?
J'ai du mal à comprendre le concept de Array.map
. J'ai fait passer à Mozilla et Tutoriels Point, mais ils ont fourni très peu d'info à ce sujet.
C'est la façon dont j'utilise Array.map
. C'est un peu complexe (un peu de d3.js impliqués; il suffit de l'ignorer)
var mapCell = function (row) {
return columns.map(function(column) {
return { column : column, value : getColumnCell(row, column) }
})
}
//getColumnCell is a function defined in my code
//columns is array defined at the top of my code
Je ne comprends pas exactement ce que ce code est en train de faire. Je sais que je suis de retour d'un nouveau tableau et des trucs, mais cette partie est un peu délicat!
si vous voulez aller à travers mon code: http://jsfiddle.net/ddfsb/2/
Mise à JOUR de 1
Je suis à l'aide de la console de comprendre réellement ce qui se passe à l'intérieur du code. En regardant les réponses, j'ai bien compris le concept de array.map
. Maintenant, la seule partie qui reste est les paramètres de lignes et de colonnes, mais il y a une différence entre les lignes et des lignes,des colonnes et des colonnes dans le violon, à condition
var rows//completely ok
var columns//completely ok
funcion(row)//here,source of row is unknown.getColumncell function utilizes this parameter further making it more critical
function(column)//source of column is unknown..getColumncell function utilizes this parameter further making it more critical
De l'aide??
OriginalL'auteur | 2013-06-28
Vous devez vous connecter pour publier un commentaire.
Réécrivons un peu, et de commencer à travailler à partir à l'intérieur.
La
function(column)
partie est essentiellement une fonction qui prend une colonne comme paramètre, et retourne un nouvel objet avec les deux propriétés:La
columns.map()
le cadre des appels à laArray.map
fonction qui prend un tableau et une fonction, et exécute la fonction de chaque élément, et renvoie les résultats. c'est à dire si l'entrée est la matrice de[1, 2, 3, 4, 5]
et la fonction est quelque chose commeisEven
, le résultat sera le tableau[false, true, false, true, false]
. Dans votre cas, l'entrée sont les colonnes, et la sortie est une liste d'objets, dont chacun a une colonne et la valeur des propriétés.Enfin, la
var mapCell = function (row)
partie déclare que la variablemapCell
contiendra une fonction d'une variable appeléerow
- et c'est la mêmerow
qui est utilisé dans la fonction intérieure.En une seule phrase, cette ligne de code, déclare une fonction qui lorsqu'il est exécuté, prendra une ligne et retourner des valeurs pour toutes les colonnes de cette ligne.
L'hypothèse de ce code est que l'
row
paramètre est passé à la fonction, quicolumns
est une collection de choses que l'on appellecolumn
, et qu'il existe une fonction appeléegetColumnCell
qui prend une ligne et d'une colonne en tant que paramètres. À partir de cet extrait, il est impossible de dire ce qu'ils sont ou d'où ces choses viennent de.est l'ensemble nouvellement créé écrasés???
la question!!!
OriginalL'auteur SWeko
La compréhension de la fonction map n'est qu'une partie de la solution ici, il y a aussi la fonction
mapCell
. Il prend un paramètrerow
et elle retourne quelque chose comme:Où la valeur de la cellule dépend de la
row
et de la colonne (les parties, les étoiles-parler etc.)Une carte de fonction applique une transformation à une valeur, et renvoie le transformé valeur.
Un exemple simple:
De la même façon:
Maintenant, étant donné que la carte est imbriquée avec une fonction qui reçoit un
row
paramètre. Vous pouvez l'utiliser dans la fonction map, pour obtenir:Et cela devient assez près de votre code.
où sont ces paramètre de ligne et de colonne en venir??
column
sont les éléments decolumns
, donc"parties"
,"starspeak"
etc.row
est passé comme un argument d'ailleurs.la question!!!
OriginalL'auteur Halcyon
map
boucles à travers votre tableau original et appelle la méthode pour chaque valeur dans le tableau. Il recueille les résultats de votre fonction pour créer un nouveau tableau avec les résultats. Vous êtes à la "cartographie" du tableau de valeurs dans un tableau de valeurs appliquées. Votre code est équivalent à:OriginalL'auteur Brandon
OriginalL'auteur Sohail Arif
Probablement la plupart des gens viennent ici (comme moi) veulent juste une base
array.map
exemple d'utilisation:Ce qu'il est, au plus basique. Pour plus d'parameers, découvrez: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
OriginalL'auteur Andrew