1
votes

Enregistrer les données dans le tableau avec l'incrémentation automatique de l'ID

J'ai un tableau au format suivant mais lors de l'envoi du formulaire, il n'y a pas de champ "ID" disponible. Je veux que lorsque le formulaire est soumis par l'utilisateur, un ID généré automatiquement soit donné et enregistré dans JSON Array. Sur chaque méthode de soumission de formulaire, il convient de vérifier si l'ID est déjà donné ou non. Si ce n'est pas le cas, attribuez-le.

private list :any;
 this.list = {
      "a_Rows": [
        {
          "id": "1",
          "sname": "amir",
          "sType": "Cheque",
          "semail": "ert",
          },


3 commentaires

avez-vous l'intention d'utiliser ce json pour le sauvegarder dans une base de données nosql?


S'il vous plaît regardez mon code ci-dessous, cela pourrait vous aider, demandez-moi s'il y a des problèmes


Actuellement, je travaille sur le front-end. Je ne sais pas quelle base de données sera utilisée dans le backend à l'avenir.


4 Réponses :


2
votes

Ecrire une fonction qui génère des identifiants aléatoires garantit que le champ id dans JSON contient une valeur lorsqu'un formulaire est soumis. Si le champ id doit être unique, une extraction de tous les identifiants est nécessaire pour vérifier l'unicité.


0 commentaires

2
votes

Vous pouvez soit utiliser un uuid pour vos identifiants, ce qui sont garantis uniques. Ou (par exemple, si vos identifiants doivent être des entiers), ayez simplement un compteur global que vous augmentez à chaque envoi et utilisez-le comme identifiant pour les nouveaux éléments.

Exemple:

items = [];
idCounter = 0;
function addItem(item) {
    item.id = idCounter++;
    items.push(item);
}

p>


2 commentaires

Je dois utiliser des identifiants entiers .Pouvez-vous me fournir un code pour savoir comment cela fonctionnera.


J'ai ajouté un exemple



2
votes

Vous pouvez utiliser le code ci-dessous

<button onclick="submit()">Submit</button>
submit() {
let s = (new Date()).getTime().toString(16) + Math.random().toString(16).substring(2) + "0".repeat(16);
let uuid = s.substr(0,8) + '-' + s.substr(8,4) + '-4000-8' + s.substr(12,3) + '-' + s.substr(15,12);

let data = {
id : uuid,
sname: "amir",
sType: "Cheque",
semail: "ert"
}
}


0 commentaires

2
votes

Veuillez regarder cet exemple ci-dessous, j'ai créé une fonction en tant que telle vous avez besoin, il créera un identifiant unique et s'ajoutera à l'objet json avec tout de sa valeur correspondante.

let value = { 2071 : {id :101, name: "bathri" , age:22}}
let idIndex;

function CreateJson(name, age){
  this.id = generateNewId();
	this.name = name;
  this.age = age;
  return value[this.id] = this;
}
 

function generateNewId(){
 idIndex = Math.floor(Math.random() * 9999) + 1;
  if(Object.keys(value).includes(idIndex) == idIndex){
    idIndex = generateNewId()
  }
  return idIndex;
}


let result = new CreateJson('nathan','23')
console.log(value);

0 commentaires