Hri*_*sto 5 javascript uniqueidentifier auto-generate
我具有由阵列很多的Symbol对象:
var symbols = {
alpha : new Symbol('alpha', 'symbol_0', 'α', 'GreekSymbol'),
beta : new Symbol('beta', 'symbol_1', 'β', 'GreekSymbol'),
gamma : new Symbol('gamma', 'symbol_2', 'γ', 'GreekSymbol'),
delta : new Symbol('delta', 'symbol_3', 'δ', 'GreekSymbol'),
... about 500 of these different types of symbols...
};
Run Code Online (Sandbox Code Playgroud)
Symbol对象的第二个参数是将在HTML中使用的ID.由于HTML规范不允许重复ID,我想为每个SymbolID 分配一个唯一ID,并且仍然能够知道此ID对应于a Symbol.所以我喜欢具有的想法symbol_前缀,但我不喜欢的手工输入出出主意symbol_0通过symbol_500.
我该如何生成唯一ID?当我声明上述数组时,我可以自动执行此过程并生成唯一ID吗?
更新
这个客户端实际上是一个好主意吗?
创建一个递增计数器的函数:
function makeCounter() {
var i = 0;
return function() {
return i++;
}
}
var id = makeCounter();
Run Code Online (Sandbox Code Playgroud)
现在每次调用id都会返回一个唯一值:
id(); // 0
id(); // 1
id(); // 2
id(); // 3
Run Code Online (Sandbox Code Playgroud)
像这样使用它:
new Symbol('alpha', 'symbol_' + id(), 'α,', 'GreekSymbol')
Run Code Online (Sandbox Code Playgroud)
功能更全面的版本允许您指定前缀和可选的起始值:
function generateId(prefix, start) {
var i = start || 0;
return function() {
return prefix + i++;
}
}
// start the counter at 12
var id = generateId("symbol_", 12);
id();
Run Code Online (Sandbox Code Playgroud)
输出:
"symbol_12"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4902 次 |
| 最近记录: |