Перебор массива и установка значений для объекта серии, jVectormap

Я работаю с плагином jVectormap.

У меня есть массив кодов стран, currentCodes, которые я объявляю в начале. Ниже на странице я работаю со встроенной в плагин функцией «серии», которая позволяет мне давать определенным странам разные цвета по умолчанию. В 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. Я знаю, что использование цикла for здесь совершенно неправильный синтаксис, но, возможно, он продемонстрирует то, что мне нужно:

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,
          }

          }
      }]
    }        

  ……

});

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


person Sarah    schedule 23.08.2013    source источник


Ответы (1)


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

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
      }]
    }        

  ……

});
person jYeory    schedule 29.08.2013
comment
Спасибо, это сработало отлично! Я бы проголосовал, но не могу, так как у меня еще недостаточно очков репутации! - person Sarah; 02.09.2013