Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2015, 01:41
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

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

Последний раз редактировалось chelkaz, 01.06.2015 в 01:45.
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2015, 04:56
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ритуально. Слова 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]] - случайный регион

Если подождете - набегит рони и напишет все за вас до букафки.

Последний раз редактировалось kostyanet, 01.06.2015 в 05:04.
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2015, 10:40
Интересующийся
Отправить личное сообщение для chelkaz Посмотреть профиль Найти все сообщения от chelkaz
 
Регистрация: 02.01.2014
Сообщений: 26

Спасибо! Будет интересно посмотреть, а то я создал просто новый массив с регионами (ключами) и значениями и получаю так:
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];
}

Но это просто я создал новый массив. А как из того что я выше написал я так и не понял...
Ответить с цитированием
  #4 (permalink)  
Старый 01.06.2015, 10:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

chelkaz,
нарисуйте исходный обьект и тот что вы хотите получить - без всяких плагинов.
Ответить с цитированием
  #5 (permalink)  
Старый 01.06.2015, 11:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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));//для теста
Ответить с цитированием
  #6 (permalink)  
Старый 01.06.2015, 12:05
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Предсказание сбылось.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Иетересные страницы истории Kosmos Оффтопик 14 21.07.2013 20:05
фрактальный сыр x-yuri Оффтопик 76 23.11.2011 21:59
Подскажите как это сделано Петр Общие вопросы Javascript 14 02.10.2009 13:41
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39