Подскажите что это за конструкция и как взять случайный ключ?
Парни помогите пожалуйста, есть данная конструкция. В ней содержаться регионы страны - 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, время: 16:24. |