В ванили есть простой способ js. Если вы используете этот метод, вам не нужно добавлять никаких зависимостей, которые улучшают производительность вашего проекта.
let uniqueId = (function () {
let num = 0;
return function (prefix) {
prefix = String(prefix) || '';
num += 1;
return prefix + num;
}
}
());
let id = uniqueId('id_');
console.log(id); // 'id_1'
В loda sh есть еще один метод. добавьте loda sh с помощью следующей команды
npm i --save lodash
, затем используйте, как показано в примере ниже
let _ = require('lodash');
let id = _.uniqueId('id_');
console.log(id); // 'id_1'
let i = 10, ids = [];
while (i--) {
ids.push(_.uniqueId('id_'));
}
console.log(ids[0]); // id_2
console.log(ids[9]); // id_11
Если вам нужен идентификатор в другом формате, выполните следующие действия. Это также продвинутое решение Vanilla js.
let uniqueId = (function () {
let c = 0,
st = new Date();
return function (prefix) {
var t = new Date() - st,
r = Math.floor(Math.random() * 1000),
str;
prefix = String(prefix) || '';
str = '-' + c + '-' + t + '-' + r;
c += 1;
return prefix + str;
}
}
());
console.log(uniqueId('id'));
console.log(uniqueId('id'));
console.log(uniqueId('id'));
setTimeout(function () {
console.log(uniqueId('id'));
}, 1000);
/*
id-0-1-145
id-1-8-113
id-2-9-598
id-3-1018-910
*/