【问题标题】:Save data in array with auto Id increment使用自动 ID 增量将数据保存在数组中
【发布时间】:2019-08-08 12:47:10
【问题描述】:

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

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

【问题讨论】:

  • 你打算用这个json保存到nosql db吗?
  • 请看我下面的代码它可能对你有帮助,请问我是否有任何问题
  • 目前我在前端工作。我不知道将来会在后端使用哪个数据库。

标签: javascript arrays json aurelia


【解决方案1】:

你可以使用下面的代码

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        例子:

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

        【讨论】:

        • 我必须使用 Integer Id's 。你能提供代码它是如何工作的吗。
        • 我加了一个例子
        猜你喜欢
        • 2018-02-27
        • 2012-01-13
        • 2012-03-10
        • 2014-11-18
        • 2012-11-16
        • 1970-01-01
        • 1970-01-01
        • 2012-10-22
        • 2011-01-14
        相关资源
        最近更新 更多