2013-08-23 4 views
0

Я работаю с плагином jVectormap.Зацикливание через массив и установочные значения для объекта серии, jVectormap

У меня есть код страны, currentCodes, который я объявляю в начале. Далее по странице я работаю с встроенной функцией «series» плагина, которая позволяет мне присваивать определенным странам разные цвета по умолчанию. В values: { } ниже series: { } далее вниз Я выписал каждое из значений в currentCodes и установил их в 1 в серии. Это работает нормально.

jQuery.noConflict(); 
jQuery(function(){ 
    var $ = jQuery; 
    var currentCodes = ["GG","IE","IM","JE","_22","_25","_23","_24"]; 
    $('#map').vectorMap({ 
    map: 'world_mill_en', 
    backgroundColor: '#b0e0fb', 
    …… 
    series: { 
     regions: [{ 
     scale: ['#008d48'], 
     normalizeFunction: 'polynomial', 
     values: { 
      "GG": 1, 
      "IE": 1, 
      "IM": 1, 
      "JE": 1, 
      "_22": 1, 
      "_25": 1, 
      "_23": 1, 
      "_24": 1 
      } 
     }] 
    }   

    …… 

}); 

Но то, что я хотел бы это способ для любых значений в currentCodes массива автоматически устанавливается в 1. Я знаю, используя цикл полностью неправильный синтаксис здесь, но, возможно, он будет демонстрировать то, что мне нужно:

jQuery.noConflict(); 
jQuery(function(){ 
    var $ = jQuery; 
    var currentCodes = ["GG","IE","IM","JE","_22","_25","_23","_24"]; 
    $('#map').vectorMap({ 
    map: 'world_mill_en', 
    backgroundColor: '#b0e0fb', 
    …… 
    series: { 
     regions: [{ 
     scale: ['#008d48'], 
     normalizeFunction: 'polynomial', 
     values: { 

      // set each value in currentCodes array so it is 1 
      var i; 
      for (i = 0; i < currentCodes.length; i++) { 
      currentCodes[i]: 1, 
      } 

      } 
     }] 
    }   

    …… 

}); 

Спасибо, любая помощь будет принята с благодарностью. Я не очень разбираюсь в синтаксисе объектов и свойств, который, я считаю, используется здесь ...

ответ

2

Попробуйте это.

jQuery.noConflict(); 
jQuery(function(){ 
    var $ = jQuery; 
    var currentCodes = ["GG","IE","IM","JE","_22","_25","_23","_24"]; 

    var values = {}; 
    jQuery.each(currentCodes, function(idx, value){ 
     values[value] = 1; 
    }) 

    $('#map').vectorMap({ 
    map: 'world_mill_en', 
    backgroundColor: '#b0e0fb', 
    …… 
    series: { 
     regions: [{ 
     scale: ['#008d48'], 
     normalizeFunction: 'polynomial', 
     values: values 
     }] 
    }   

    …… 

}); 
+0

Спасибо, что это сработало отлично! Был бы upvote, но я не могу, поскольку у меня пока не хватает очков репутации! – Sarah