-4
votes

Rechercher et remplacer chaque élément dans une matrice multidimensionnelle

J'ai ce tableau, avec sa première colonne comme ID: xxx

Je veux remplacer chaque élément "P" avec son animal correspondant du tableau "Recherche" ci-dessous: xxx

... qui me donnera le nouveau tableau suivant xxx

J'ai réussi à me confondre totalement sur celui-ci . Merci pour toute aide.


3 commentaires

Ce ArrayLookup Le format de données est horrible travailler avec. Pouvez-vous modifier cet objet? Une option de manière significative serait quelque chose comme: {"P6": "chien", "P7": "CAT"} ...


Oh, cela explique probablement pourquoi je n'ai pas encore été capable d'obtenir quelque chose à travailler encore. Oui, il peut être modifié à votre suggestion.


Je suis sûr qu'il y a des raisons mais je ne vois pas le point de la bowvotes. J'essaie d'apprendre ici que je pensais que c'était le point de si. Je n'ai soumis aucune tentative parce que je n'avais rien de valeur à montrer. Pas une plainte, juste une observation.


3 Réponses :


1
votes

Vous devez d'abord convertir arraylookup code> dans un objet, c'est-à-dire: xxx pré>

p>

.as-console-wrapper { max-height: 100% !important; top: 0; }


0 commentaires

1
votes

Vous pouvez le faire avec un Carte sur votre maintarray code> pour mapper les éléments des entrées à leurs valeurs de recherche.

Pour rechercher facilement une valeur, créez une carte comme ceci: P>

const arr = [
  ["1001","P6","P8"],
  ["1002","P7"],
  ["1003","P7","P8","P10"],
  ["1004","P6","P10"],
];
const arrLookup = [
  ["P6","dog"],
  ["P7","cat"],
  ["P8","mouse"],
  ["P9","horse"],
  ["P10","cow"],
];

const lookup = arrLookup.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});

const result = arr.map(([id, ...rest]) => [id, ...rest.map(x => lookup[x])]);

console.log(result);


0 commentaires

1
votes

Vous pouvez utiliser trouver code> et de la carte code> avec StartSwith code> comme:

p>

var array = [
  ["1001", "P6", "P8"],
  ["1002", "P7"],
  ["1003", "P7", "P8", "P10"],
  ["1004", "P6", "P10"],
];
var lookup = [
  ["P6", "dog"],
  ["P7", "cat"],
  ["P8", "mouse"],
  ["P9", "horse"],
  ["P10", "cow"],
];

var result = array.map(function(arr) {
  var replaced = arr.map(function(s) {
      if (s.startsWith("P")) {
        var newValue = lookup.find(function(a) {
            return a[0] == s;
        })[1];
      return newValue;
    }
    return s;
  });
return replaced;
});

console.log(result);


0 commentaires