Подскажите что это за конструкция и как взять случайный ключ?
Парни помогите пожалуйста, есть данная конструкция. В ней содержаться регионы страны - da, cr, sa, so и так далее...
Мне нужно получать случайный регион из этой конструкции, что ниже. Это Массив? Как мне получать случайные регионы которые содержутся в "pathes":
jQuery.fn.vectorMap('addMap', 'russia', {
"width": 990,
"height": 593,
"pathes": {
"da": {
"name": "Республика Дагестан",
"path": "m64"
},
"cr": {
"name": "Республика Крым",
"path": "m7.63"
},
"sa": {
"name": "Республика Саха (Якутия)",
"path": "M701"
},
"so": {
"name": "Республика Северная Осетия",
"path": "m75"
},
[B]и так далее...[/B]
|
Ритуально. Слова pathe в английском нет, мн.ч. от path - paths.
Берете эту самую pathes - это объект, получаете из нее ключи - регионы - в обычный индексный массив, и случайно из него выбираете по случайному индексу. var keys = https://developer.mozilla.org/en-US/...ts/Object/keys var rand = myArray[Math.floor(Math.random() * myArray.length)]; http://stackoverflow.com/questions/4...-from-an-array console.log(pathes[keys[rand]] - случайный регион Если подождете - набегит рони и напишет все за вас до букафки. |
Спасибо! Будет интересно посмотреть, а то я создал просто новый массив с регионами (ключами) и значениями и получаю так:
var regRus = {
"da":"Республика Дагестан",
"cr":"Республика Крым"
}
function pickRandomProperty(obj) {
var result;
var count = 0;
for (var prop in obj)
if (Math.random() < 1/++count)
result = prop;
return result;
}
function newReg () {
regionReg = pickRandomProperty(regRus);
regionword = regRus[regionReg];
}
Но это просто я создал новый массив. А как из того что я выше написал я так и не понял... |
chelkaz,
нарисуйте исходный обьект и тот что вы хотите получить - без всяких плагинов. |
chelkaz,
:-?
var obj = {
"width": 990,
"height": 593,
"pathes": {
"da": {
"name": "Республика Дагестан",
"path": "m64"
},
"cr": {
"name": "Республика Крым",
"path": "m7.63"
},
"sa": {
"name": "Республика Саха (Якутия)",
"path": "M701"
},
"so": {
"name": "Республика Северная Осетия",
"path": "m75"
}}}
var keys = Object.keys(obj.pathes)
var rand = keys[Math.floor(Math.random() * keys.length)];
var pathes = {};
pathes[rand] = obj.pathes[rand];
obj.pathes = pathes ;
alert(JSON.stringify(obj));//для теста
|
Предсказание сбылось.
|
| Часовой пояс GMT +3, время: 04:34. |