洗牌一个数组并替换它';在javascript中使用guid创建键

洗牌一个数组并替换它';在javascript中使用guid创建键,javascript,Javascript,我想洗牌一个数组,并将密钥更改为唯一标识符 这是我到目前为止在互联网上发现的几个功能的组合 QuestionSet.prototype.obfusicate = function(data) { var o = {}; util.list(['question', 'answer'], data, o); for (var n = 0; n < o.answer.length - 1; n++) { var k = n + Math.floor(M

我想洗牌一个数组,并将密钥更改为唯一标识符

这是我到目前为止在互联网上发现的几个功能的组合

QuestionSet.prototype.obfusicate = function(data) {
    var o = {};
    util.list(['question', 'answer'], data, o);

    for (var n = 0; n < o.answer.length - 1; n++) {
        var k = n + Math.floor(Math.random() * (o.answer.length - n));
        var temp = o.answer[k];
        o.answer[k] = o.answer[n];
        o.answer[n] = temp;
    }

    // generate a unique id for the key

    return {
        correct: this.guid(), //actually store the first unique id
        question: [o.question, o.answer]
    };
};

QuestionSet.prototype.guid = function() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
        return v.toString(16);
    });
}
QuestionSet.prototype.obfuscate=函数(数据){
var o={};
util.list(['question','answer',data,o);
for(var n=0;n

目前,我的计划是在洗牌之后引入另一个
for(x in o.answers)
循环,并将其放入一个关联数组,其中guid充当键。然而,我确信有一个更优雅的解决方案,我现在无法想出它。

util.list做什么?将o.answer设置为某个数组?它基本上是PHPs列表方法的JavaScript实现。对于处理数组非常有用。代码: