使用自动Id增量将数据保存在数组中

问题描述 投票:1回答:4

我有一个以下格式的数组,但在表单提交时,没有“ID”字段可用。我希望当用户提交表单时,应该给出一个自动生成的ID并保存在JSON数组中。在每个表单提交方法上,它应检查是否已经给出了ID。如果没有则分配。

private list :any;
 this.list = {
      "a_Rows": [
        {
          "id": "1",
          "sname": "amir",
          "sType": "Cheque",
          "semail": "ert",
          },
javascript arrays json aurelia
4个回答
2
投票

您可以使用以下代码

<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"
}
}

2
投票

请看下面这个例子,我已经创建了一个你需要的函数,它将创建唯一的id并添加到json对象中,并且它具有所有相应的值。

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);

2
投票

编写生成随机ID的函数可确保JSON中的id字段在表单提交时包含值。如果id字段必须是唯一的,则需要获取所有id以检查唯一性。


2
投票

你可以使用uuid作为你的id,保证是唯一的。或者(例如,如果你的id需要是整数)只需要一个全局计数器,你可以在每次提交时增加它,并将其用作新元素的id。

例:

items = [];
idCounter = 0;
function addItem(item) {
    item.id = idCounter++;
    items.push(item);
}
© www.soinside.com 2019 - 2024. All rights reserved.