javascript - 为传入数据数组生成唯一的 div

标签 javascript html arrays guid

我有大量来自外部来源的数据。

该数据以关联数组的形式出现。键是一个名为 version 的值,数据是一个 JSON 对象。版本 key 中可能包含任何字符。

我希望能够为数组中的每个键生成一个单独的 Div 。我尝试使用以下函数删除非字母数字字符

var sanitizeVersionName = function(version) {
    var prefixed = 'v' + version;
    return prefixed.replace(/^[^a-z]+|[^\w:.-]+/gi, '');
};

然后使用结果作为 div 的 ID。问题是,如果我的数组包含 "11 等版本,则上述函数将为两者返回相同的值。

有没有办法为我的数组中的每个版本键分配一个具有全局唯一 ID 的 div?

最佳答案

您无需从 ID 中删除 [a-z\w]。 Div id 只需要以 [a-zA-Z] 开头,但可以包含数字、连字符和下划线。

如果有与数据关联的日期,您可以使用该日期:

var myDate = new Date('06-03-2014 9:34:03');
prefixed += myDate.getTime();

虽然在循环中一个接一个地生成新日期是行不通的,但会出现欺骗行为。

您还可以使用 token 生成器函数,尽管不能保证它是全局唯一的,但几乎不可能,长度为 16 个字符。

function makeToken(len) {
    var characters = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var string = '';
    for (var i = 0; i < len; i++) {
        var x = Math.round(Math.random() * characters.length);
        string += characters.substr(x, 1);
    }
    return string;
}

关于javascript - 为传入数据数组生成唯一的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38153144/

相关文章:

c++ - C++ 中矩阵类的性能

数组和 Swift

php - 使用 jQuery AJAX 传递复选框数据

javascript - 奇怪的 SVG 悬停行为

javascript - 关于如何删除 ES7 装饰器的任何想法?

html - Bootstrap 3 - 网格系统和缩略图

带有 eventListener 的 Javascript 代码不适用于视频按钮控制系统

javascript - 使用 Mustache 将 JSON 文件集成到 html 中

html - 导航栏下拉菜单中的堆叠选项卡

Javascript 使用 MAP 从二维数组创建多个字符串?