我正在开发一个项目,我需要在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"
}}
];
我尝试过几种不同的方法,但没有成功。在这一点上,我也不确定这是否是最佳方法。
附加信息:应用程序必须遍历数组,一次显示一个键集。
- 欣赏任何方向,
答案 0 :(得分:1)
首先修复 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);
答案 1 :(得分:0)
您需要一个实际的数组(而不是语法错误):
var o = [
{
"key": 1,
"bruce wayne": "batman"
},
{
"key": 2,
"peter parker": "spiderman"
},
{
"key": 3,
"bruce banner": "hulk"
}
]
您可以shuffle that easily并保留密钥。
答案 2 :(得分:0)
您的数组有语法错误。似乎你想要对象而不是数组,或者因为对象没有顺序,所以对象数组:
var o = [
{
"key_1": {"bruce wayne": "batman"}
},
{
"key_2": {"peter parker": "spiderman"}
},
{
"key_3": {"bruce banner": "hulk"}
}
];
shuffle(o);
shuffle
是this answer或this one中定义的函数。
现在您的数组将类似于
[
{
"key_3": {"bruce banner": "hulk"}
},
{
"key_2": {"peter parker": "spiderman"}
},
{
"key_1": {"bruce wayne": "batman"}
}
];