javascript - 在保留键的同时打乱对象数组

标签 javascript arrays object

我正在开发一个项目,其中我需要在 DOM 上对对象数组进行洗牌,同时保留键。

示例:

     var o = [
    {"key_1": {
        "bruce wayne": "batman"
    }},
    {"key_2": {
        "peter parker": "spiderman"
    }},

    {"key_3": {
        "bruce banner": "hulk"
    }}
];

之后:

var o = [
    {"key_3": {
        "bruce banner": "hulk"
    }},
    {"key_1": {
        "bruce wayne": "batman"
    }},

    {"key_2": {
        "peter parker": "spiderman"

    }}
];

我尝试过几种不同的方法,但没有成功。此时我也不确定这是否是最好的方法。

其他信息:应用程序必须迭代数组,一次显示一个键集。

-欣赏任何方向,

最佳答案

首先修复o,它不正确:

var o = [
    {"key_1": {
        "bruce wayne": "batman"
    }},
    {"key_2": {
        "peter parker": "spiderman"
    }},

    {"key_3": {
        "bruce banner": "hulk"
    }}
];

Now using the shuffle from this answer:

function shuffle(o){ 
    for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
    return o;
};

你可以这样调用它:

o = shuffle(o);

关于javascript - 在保留键的同时打乱对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22716972/

相关文章:

java - 基于一列对二维数组进行排序

JavaScript 对象赋值 : unexpected behaviour

javascript - || 的和 NaN 运算符。它们到底是如何运作的?

javascript - 如何访问函数对象 JavaScript 中的属性函数

javascript - Emberjs 将多个 Controller 加载到一个 Controller 中

javascript - 如何删除没有拼接且没有未定义剩余的数组元素?

arrays - 在具有重复项的排序数组中查找 A[i]=i

javascript - Vue js 似乎将嵌套对象作为字符串返回?

javascript - 如何将 Ajax 选项卡控件内的文本框读入 javascript 函数

JavaScript 和 PHP 提交数据