2015-10-06 6 views
-1

образца Строка выходныхJQuery - Петля массив строк на основе подсчета

[{v:5, f:'Week 1'}, {v:10, f:'Week 2'},{v:15, f:'Week 3'},{v:20, f:'Week 4'},{v:25, f:'Week 5'}] 

Snippet

function weekAxis(){ 

var ticks = ''; 
var week_count = <?php echo $chart ?>; //count number of weeks 

    for(i=0; i<=week_count; i++){ 

     var tick_str[] = '{v:'+week_count, f:'Week' +week_count}'; 
    } 
return ticks; 

} 

Желаемая выход на основе подсчета недели

Если week_count = 5,

var ticks = [{v:5, f:'Week 1'}, {v:10, f:'Week 2'},{v:15, f:'Week 3'},{v:20, f:'Week 4'},{v:25, f:'Week 5'}] 

Если week_count = 4,

var ticks = [{v:4, f:'Week 1'}, {v:8, f:'Week 2'},{v:12, f:'Week 3'},{v:16, f:'Week 4'}] 

Если week_count = 6,

var ticks = [{v:6, f:'Week 1'}, {v:12, f:'Week 2'},{v:18, f:'Week 3'}, {v:24, f:'Week 4'}, {v:30, f:'Week 5'}, {v:36, f:'Week 6'}] 

Как отмечалось, значение v умножается с самим подсчета и будет цикл, пока она не достигнет недельный счет. Аналогично, текст Week будет иметь увеличенное значение счетчика.

Как я могу сделать строку выше на основе отсчета недели?

+0

Вы помечено свой вопрос 'jquery', но я не вижу, что связано с JQuery вообще в этом вопросе. Я * делаю * вижу, что я предполагаю, это PHP-код; вы пытаетесь сделать это в PHP? –

ответ

0

Попробуйте следующее: вы можете инициализировать массив и нажимать на него карту. В цикле for создайте карту со счетчиком и переменную i, как показано ниже.

function weekAxis(){ 
 
    
 
    var ticks = new Array(); 
 
    var week_count = 4; //count number of weeks 
 
    
 
     for(i=1; i<=week_count; i++){ 
 
      var tick_str = {}; 
 
      tick_str['v'] = (week_count * i); 
 
      tick_str['f'] = 'Week ' + i ; 
 
      ticks.push(tick_str); 
 
     } 
 
    return ticks; 
 
    
 
    } 
 

 
alert(JSON.stringify(weekAxis()));

+0

В нем написано 'SyntaxError: missing; перед оператором var tick_str ['v'] = week_count * i; ' – Slimshadddyyy

+0

Извините, я поместил' var' несколько раз, исправленный сейчас. Пожалуйста попробуйте. –

+0

Фрагмент работает так, как ожидалось. – Slimshadddyyy

0

Это должно сделать трюк

function weekAxis(){ 
    var ticks = '',week_count = 5,tick_str = []; 
    for(i=0; i<week_count; i++){ 
     var ex = { 
      v:week_count*(i+1), 
      f:'Week'+week_count 
     }; 
     tick_str.push(ex); 
    } 
    return JSON.stringify(tick_str); 
} 
Смежные вопросы