2016-04-29 3 views
0

Я новичок в stackoverflow: Вот моя проблема, я хотел бы подсчитать, сколько билетов в месяц у пользователя есть и нажимать в моем массиве, Я сделал это:подсчитайте количество данных в массиве и приращение javascript

for(j=0; j< data.data.tickets.length ;j++){ 
    var requesterid = data.data.tickets[j].requester_id; 
    var created_at = data.data.tickets[j].created_at; 
    var today = new Date().toISOString().slice(0, 7); 
    if(created_at.includes(today)&& requesterid == cleartab[requesterid]['id']){total ++}  

     var arrayRef2 = cleartab[requesterid]['monthly'] || []; 
     cleartab[requesterid]['monthly'] = arrayRef2.concat([{"janvier":total}], [{"fevier":"fef"}]); 
} 

Проблема в том, что это дало мне неправильный результат.

Вот мой массив:

My array

Если мой вопрос не ясно, я могу повторно объяснить или сказать мне, если вам нужно что-то еще, чтобы ответить на него

Я надеюсь, что вы можете помочь me
Моя проблема:
Некоторые люди не должны иметь билет, результат не является хорошим. Я хотел бы быть уверенным, что он увеличивает только одного человека, когда в течение месяца был отправлен 1 билет. Пока, когда кто-то отправляет билет в текущем месяце, каждый пользователь получил +1 билет в текущем месяце. Но я хочу, чтобы: он увеличивался только для одного пользователя, пользователя, который отправил билет. Это ясно?

+0

Что такое «неправильно» с результатом? –

+0

Некоторые люди не должны иметь билет, результат не является хорошим. Я хотел бы быть уверенным, что он увеличивает только одного человека, когда в течение месяца был отправлен 1 билет. Пока, когда кто-то отправляет билет в текущем месяце, каждый пользователь получил +1 билет в текущем месяце. Но я хочу, чтобы: он увеличивался только для одного пользователя, пользователя, который отправил билет. Это ясно? – moskitos

+0

Разве это не потому, что вы используете глобальную переменную 'total', которая разделяется всеми? Вы пытались сделать эту локальную переменную? – Patrick

ответ

1

Основываясь на моем понимании проблемы, вы можете попробовать, как показано ниже:

for(j=0; j< data.data.tickets.length ;j++){ 
    var requesterid = data.data.tickets[j].requester_id; 
    var created_at = data.data.tickets[j].created_at; 
    var today = new Date().toISOString().slice(0, 7); 
    // read the monthly for a given requestor or 
    // initialize the new array by setting the total 
    // to 0 "janvier:0 
    var arrayRef2 = cleartab[requesterid]['monthly'] || 
        [{"janvier":0}, {"fevier":"fef"}]; 

    if(created_at.includes(today) && 
     requesterid == cleartab[requesterid]['id']){ 
     // increment the total, very first time the value of 
     // arrayRef2[0].janvier will be zero, but in 
     // next iteration it will be always the previous value 
     arrayRef2[0].janvier++; 
    }  

    cleartab[requesterid]['monthly'] = arrayRef2; 
} 
+0

Спасибо большое! Я просто хочу понять, что вы сделали, можете ли вы объяснить мне, пожалуйста :) – moskitos

+0

Я написал комментарии, в основном, независимо от того, что вы сделали то же самое, но теперь общее значение всегда берется и увеличивается от cleartab [requesterid] [' ежемесячно '], поэтому он всегда будет отличаться для разных пользователей. –

Смежные вопросы