我很擅长强调我的无知。
是否有快速简便的方法来执行以下操作:
men:{gerald:{"name":"Gerald", "age":50},mike:{"name":"Mike", "age":50},charles:{"name":"Charles", "age":50}}
名称为Mike - 设置在位置1(索引0)
我只想将这些项目随机播放,以便第一项由我选择的名称设置。
任何帮助都超过欢迎。
答案 0 :(得分:1)
由于_.suffle
会对所有元素进行混洗,因此您需要拼接除预定义元素之外的所有元素,将它们混合,并将混洗元素连接到包含预定义元素的现有数组。
类似的东西:
var orig = [1, 2, 3, 4, 5],
shuffled = [];
shuffled[0] = orig[2]; // 3 is the predefined element
shuffled = shuffled.concat( _.shuffle( orig.slice(0,2).concat( orig.slice(3) ) ) );
获取没有预定义元素的数组,将其混洗,并将其连接到shuffled
数组,该数组包含预定义变量作为其第一个元素。
答案 1 :(得分:0)
您不需要underscore.js。 Array.sort
会很好:
myJson.men.sort(function(a, b) { return b.name == "Mike" })
这不是排序的模型用法,但它确实起到了作用。
此外,您的JSON无效。你需要在数组周围使用方括号,而不是curlies:
{
"men": [{
"name": "Gerald", "age": 50
},{
"name": "Mike", "age": 50
},{
"name": "Charles", "age": 50
}]
}
你无法“订购”那个JSON。你要做的是订购一个关联数组。这没有任何意义。如果项目的顺序很重要,那么您需要一个数组,而不是一个对象。