Ошибка кодирования Java-сценария? не могу получить содержимое ячейки, чтобы соответствовать - PullRequest
0 голосов
/ 14 марта 2019

я работал над рабочим проектом.я хочу узнать из набора диапазонов ячеек, находятся ли в определенном диапазоне дат определенный магазин, а затем посчитать, сколько раз этот магазин обнаруживается внутри диапазона.У меня есть формула в основном работает.но когда я сравниваю магазин с уникальными значениями в диапазоне, он не совпадает, хотя ввод для первого значения и второго одинаков.

Array.prototype.getUnique = function () {
    var u = {}, a = [];
    for (var i = 0, l = this.length; i < l; ++i) {
        if (u.hasOwnProperty(this[i])) {
            continue;
        }
        a.push(this[i]);
        u[this[i]] = 1;
    }

  return a;
}   
    function countOnDate(datestart,dateend,daterange,sheet,valuesrange){
      var datestart = Utilities.formatDate(new Date(datestart), "GMT+1", "M/d/yyy")
      var dateend = Utilities.formatDate(new Date(dateend), "GMT+1", "M/d/yyy")
      var range = sheet.getRange(daterange).getValues();
      var countrange = sheet.getRange(valuesrange).getValues()
      var count = [];
      var countrangeunique = countrange.getUnique()
      //Logger.log("countrange:"+countrange)
      //Logger.log("unique"+countrangeunique)
      for (var a =0;a < countrangeunique.length;a++){
        var countnumber = 0;
        for (var b = 0; b < range.length;b++){
          if (range[b] !="" || range[b] !=[]){
          var rangeformated = Utilities.formatDate(new Date(range[b]),"GMT+1","M/d/yyy")
          Logger.log((datestart <= rangeformated) +":"+(rangeformated <= dateend))    
          if (datestart <= rangeformated && rangeformated <= dateend){
            Logger.log("activestore:"+countrangeunique[a]+" storescan:"+countrange[b]+"match:"+(countrange[b] == countrangeunique[a]))    
            if (countrange[b] == countrangeunique[a]) {
                  countnumber++
                  count[a][0] = countrangeunique[a] 
                  count[a][1] = countnumber
                  Logger.log("counternumber"+countnumber+" store: "+countrangeunique[a])
              }
          }
        }
      }
      }   

, поэтому сверху начинается функция подсчета уникальности для поиска уникального значения в диапазоне хранения i3: i... который вводится через переменную «диапазон значений».в этом диапазоне содержатся номера идентификаторов магазина.для магазинов сотрудник работал, т.е. 2512,1533.функция подсчета даты ищет уникальные идентификаторы магазина.Затем для каждого числа проверяется диапазон дат, чтобы убедиться, что даты находятся в пределах этого месяца.они вводятся с «datestart», то есть с начала месяца."dateend", т.е. конец месяца.и датаДаты сотрудника работали в формате "м / д / гггг".если даты не находятся внутри месяца или они не заполнены, их следует игнорировать, и система переходит к следующему.чем он сравнивает уникальный номер с диапазоном номеров магазинов внутри месяца и должен их подсчитать.однако countrange [b] == countrangeunique [a] не совпадает, даже если значения совпадают.Как я могу это исправить?щас мой журнал показывает.

pastebinlog

1 Ответ

0 голосов
/ 15 марта 2019

решение i fount состояло в том, чтобы заставить js анализировать возвращаемые значения как int с использованием parseInt (value, 10).удачи всем, кто имеет эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...