0
votes

Comment arrêter la saisie de données en double dans la matrice d'objet

J'ai un tableau avec nom ValidationValuesValues ​​afin que l'utilisateur clique sur l'état d'entrée, c'est-à-dire. ValidationIDValue prend la valeur de la boîte d'entrée individuelle. Maintenant, un utilisateur Sélectionnez l'option sur oui ou non, la fonction crée un nom d'obj avec nom de clé égale à l'état, validationidvalue et valeur égale à la sélection des utilisateurs en bref crée un obj tel que celui-ci xxx pré> p > Ensuite, cet objet est poussé à ValidationValueidValues ​​variable. Maintenant, le problème se pose lorsque l'utilisateur sélectionne la même boîte et change de valeur de NON à OUI P>

  var validationValueIdValues = []  //as global variable

  if (this.state.selectedOption === "YES") {
    const attribute = {};
    attribute[this.state.validationIdValue] = "YES";
    if (validationValueIdValues.length > 0) {
      validationValueIdValues.forEach((data, index) => {
        if (Object.keys(data) == this.state.validationIdValue) {
          validationValueIdValues.splice(index, 1);
            validationValueIdValues.push(attribute);
        }
      });
    } else {
      validationValueIdValues.push(attribute);
    }
  }


4 commentaires

Qu'essayez-vous de faire. Pouvez-vous partager le code et l'exigence?


Le nombre d'identifiant de validation est corrigé? ou est-ce généré de manière dynamique?


Il est généré dynamiquement @vaibhavsingh


J'utilise des joints joints dans lesquels les entrées sont générées de manière dynamique selon les utilisateurs de chaque entrée dispose de sa propre pièce d'identité que la constante de Ramin est désormais désormais possible lorsque l'utilisateur sélectionne cette entrée, je souhaite stocker l'ID d'entrée avec la valeur des utilisateurs entrées dans un tableau @ Vahidakhtar


5 Réponses :


0
votes

'in' peut être utilisé pour vérifier la clé dans le tableau

// if key not in array then add to array
if ( !( 'mydata' in myArray) ) {
    myArray['mydata'] = 99;
}


3 commentaires

Le tableau est une matrimonie d'objets de ce que j'ai compris. Il aura des index 0,1,2 (les clés seront 0,1,2)


De plus, in 'est utilisé pour vérifier si une clé donnée est présente à l'intérieur de l'objet. développeur.mozilla.org/en-us/docs/ Web / JavaScript / Référence / ...


En effet c'est un tableau d'objet @ssarbee



1
votes

Vous devrez vérifier toutes les touches de la matrice pour trouver la valeur correspondante. Vous n'avez pas besoin du code pour être répété pour "oui" ou "non" comme vous l'avez mentionné. Quelque chose comme ça est assez générique pour le gérer xxx


0 commentaires


1
votes
const newObject = {'08765d0f-2e7a-4fbd-9282-c38f5ddf8d8b': "NO"}

const array = [{'08765d0f-2e7a-4fbd-9282-c38f5ddf8d8b': "YES"}, {'tyhgsgsvbb': 'NO'}];

const items = array.filter(item => item['08765d0f-2e7a-4fbd-9282-c38f5ddf8d8b'])

if(allKeys.length>0) array[array.findIndex(items[0])] =  newObject
else array[array.length] = newObject

0 commentaires

1
votes

Vous pouvez essayer cela!

const array=[{'08765d0f-2e7a-4fbd-9282-c38f5ddf8d8b': "YES"},{'08754d0f-2e7a-4fbd-9282-c38f5ddf8d8b': "YES"}];
let newValue = {'08765d0f-2e7a-4fbd-9282-c38f5ddf8d8b': "YES"};

const index = array.findIndex(e=>Object.keys(e).indexOf(Object.keys(newValue)[0])>-1);
if(index > -1){
    array.splice(index,1,newValue); //Replacing the value
} else {
    array.push(newValue);
}


0 commentaires