0
votes

Comment reflacteur réduire avec la valeur de la matrice

J'essaie de nettoyer le code.

sélectionnégroup.items ressemble à ceci (simplifié): xxx

ci-dessous est mon Code de cartographie. Objectif: Obtenez les points ultérieurs d'une collection de polygones xxx

évidemment ce n'est pas vraiment lisible. Je ne trouve pas une belle façon de le simplifier sans ajouter de nombreuses "constantes de lisibilité" (et sans aucune amélioration)


1 commentaires

Vous pouvez probablement trouver des réponses ou mieux à poser ici: codereview.stackexchange.com .


3 Réponses :


1
votes

Vous pouvez faire une fonction d'assistance qui prend un objet szenario et appuie chacun des ['xmin', 'xmax', 'ymax'] propriétés à la matrice appropriée. Ensuite, tout en itérant sur des articles, il vous suffit de tester si l'élément est un groupe (auquel cas vous feriez item.szenarios.foreach (addzenario) ), sinon ajoutez le szenario unique: < Code> addszenario (item.extent) xxx


0 commentaires

1
votes

Vous pouvez utiliser Réduire pour calculer le MAX et MIN.

const getVal = (item) => {
  return item.szenarios ? szenario.extent[key] : item.extent[key];
}

const getMin = (group, key) => {
  return group.items.reduce((acc, item) => {
    return Math.min(acc, getVal(item));
  }, Number.MAX_SAFE_INTEGER); 
}

const getMax = (group, key) => {
  return group.items.reduce((acc, item) => {
    return Math.max(acc, getVal(item));
  }, Number.MIN_SAFE_INTEGER); 
}


const xmin = getMin(selectedGroup, "xmin");
const xmax = getMin(selectedGroup, "xmax");
const ymin = getMin(selectedGroup, "ymin");
const ymax = getMin(selectedGroup, "ymax");


0 commentaires

0
votes

J'ai proposé un mélange de réponses: xxx


0 commentaires