Сохранение данных в массиве с автоматическим приращением идентификатора - PullRequest
1 голос
/ 18 марта 2019

У меня есть массив в следующем формате, но при отправке формы поле "ID" недоступно. Я хочу, чтобы, когда форма была отправлена ​​пользователем, необходимо было автоматически сгенерировать идентификатор и сохранить его в массиве JSON. В каждом методе отправки формы он должен проверять, указан ли идентификатор уже или нет. Если нет, тогда назначьте.

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

Ответы [ 4 ]

2 голосов
/ 18 марта 2019

Пожалуйста, посмотрите на этот пример ниже, я создал функцию как таковую вам нужно, он создаст уникальный идентификатор и добавит в объект 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 голосов
/ 18 марта 2019

Вы можете использовать uuid для своих идентификаторов, которые гарантированно будут уникальными.Или (например, если ваши идентификаторы должны быть целыми числами) просто используйте глобальный счетчик, который вы увеличиваете с каждым отправлением, и используйте его как идентификатор для новых элементов.

Пример:

items = [];
idCounter = 0;
function addItem(item) {
    item.id = idCounter++;
    items.push(item);
}
2 голосов
/ 18 марта 2019

Вы можете использовать следующий код

<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 голосов
/ 18 марта 2019

Напишите функцию, которая генерирует случайные идентификаторы, чтобы поле id в JSON содержало значение при отправке формы. Если поле id должно быть уникальным, выбор всех идентификаторов необходим для проверки уникальности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...