Таблица столбцов столбцов в ajax get [duplicate]

find() рассмотрит подстроку относительно регулярного выражения, где в качестве matches() рассмотрит полное выражение.

find() вернет true, только если подстрока выражения совпадает с шаблоном.

public static void main(String[] args) {
        Pattern p = Pattern.compile("\\d");
        String candidate = "Java123";
        Matcher m = p.matcher(candidate);

        if (m != null){
            System.out.println(m.find());//true
            System.out.println(m.matches());//false
        }
    }
20
задан LordChariot 26 June 2012 в 02:27
поделиться

5 ответов

Вы можете использовать собственные функции .reduce() для агрегирования данных, а затем .sort() сортировать по bytes.

var result = dataObject.reduce(function(res, obj) {
    if (!(obj.category in res))
        res.__array.push(res[obj.category] = obj);
    else {
        res[obj.category].hits += obj.hits;
        res[obj.category].bytes += obj.bytes;
    }
    return res;
}, {__array:[]}).__array
                .sort(function(a,b) { return b.bytes - a.bytes; });

Если вы поддерживаете старые версии, вы будете необходимо использовать прорезь для .reduce() .

21
ответ дан user1106925 18 August 2018 в 04:15
поделиться
  • 1
    – LordChariot 26 June 2012 в 04:09
  • 2
    хммм. Теперь я задаюсь вопросом, есть ли простой способ нарисовать это? Я просто собирался сделать текстовую таблицу, но, возможно, диаграмму для байтов или хитов. Какие-нибудь хорошие графические подпрограммы? – LordChariot 26 June 2012 в 04:15
  • 3
    @LordChariot: Google, скорее всего, покажет вам довольно много хороших библиотек для графического отображения. Сначала попробуйте попробовать, а затем задайте вопрос, если вы застряли на чем-то. :) – user 26 June 2012 в 15:51
  • 4
    Это работает внутри CouchDB :) – Pete 8 June 2015 в 15:30
  • 5
var obj = [{Poz:'F1',Cap:10},{Poz:'F1',Cap:5},{Poz:'F1',Cap:5},{Poz:'F2',Cap:20},{Poz:'F1',Cap:5},{Poz:'F1',Cap:15},{Poz:'F2',Cap:5},{Poz:'F3',Cap:5},{Poz:'F4',Cap:5},{Poz:'F1',Cap:5}];
Array.prototype.sumUnic = function(name, sumName){
    var returnArr = [];
    var obj = this;
    for(var x = 0; x<obj.length; x++){
        if((function(source){
            if(returnArr.length == 0){
                return true;
            }else{
                for(var y = 0; y<returnArr.length; y++){
                    var isThere = [];
                    if(returnArr[y][name] == source[name]){
                        returnArr[y][sumName] = parseInt(returnArr[y][sumName]) + parseInt(source[sumName]);
                        return false;
                    }else{
                        isThere.push(source);
                    }
                }
                if(isThere.length>0)returnArr.push(source);
                return false;
            }
        })(obj[x])){
            returnArr.push(obj[x]);
        }
    }
    return returnArr;
}
obj.sumUnic('Poz','Cap');
// return "[{"Poz":"F1","Cap":45},{"Poz":"F2","Cap":25},{"Poz":"F3","Cap":5},{"Poz":"F4","Cap":5}]"
1
ответ дан AhbapAldirmaz 18 August 2018 в 04:15
поделиться

Если вы идете по маршруту LINQ.js , вы можете сделать это следующим образом:

var aggregatedObject = Enumerable.From(dataArray)
        .GroupBy("$.category", null,
                 function (key, g) {
                     return {
                       category: key,
                       hits: g.Sum("$.hits"),
                       bytes: g.Sum("$.bytes")
                     }
        })
        .ToArray();

Рабочая демонстрация с помощью фрагментов стека:

var dataArray = [ 
  { category: "Search Engines", hits: 5, bytes: 50189 },
  { category: "Content Server", hits: 1, bytes: 17308 },
  { category: "Content Server", hits: 1, bytes: 47412 },
  { category: "Search Engines", hits: 1, bytes: 7601  },
  { category: "Business",       hits: 1, bytes: 2847  },
  { category: "Content Server", hits: 1, bytes: 24210 },
  { category: "Internet ",      hits: 1, bytes: 3690  },
  { category: "Search Engines", hits: 6, bytes: 613036 },
  { category: "Search Engines", hits: 1, bytes: 2858  } 
];

var aggregatedObject = Enumerable.From(dataArray)
        .GroupBy("$.category", null,
                 function (key, g) {
                     return {
                       category: key,
                       hits: g.Sum("$.hits"),
                       bytes: g.Sum("$.bytes")
                     }
        })
        .ToArray();

console.log(aggregatedObject);
<script src="//cdnjs.cloudflare.com/ajax/libs/linq.js/2.2.0.2/linq.min.js"></script>

Кроме того, вы можете найти дополнительную информацию о группе linqjs с помощью суммы

8
ответ дан Community 18 August 2018 в 04:15
поделиться

Учитывая приведенную выше строку данных, приведенный ниже код работает. Он проходит через каждый объект; если категория существует в массиве groupedObjects, ее хиты и байты добавляются к существующему объекту. В противном случае он считается новым и добавляется в массив groupedObjects.

В этом решении используются underscore.js и jQuery

Вот демон jsfiddle: http: // jsfiddle .net / R3p4c / 2 /

var objects = $.parseJSON(dataString);
var categories = new Array();
var groupedObjects = new Array();
var i = 0;

_.each(objects,function(obj){
    var existingObj;
    if($.inArray(obj.category,categories) >= 0) {
        existingObj = _.find(objects,function(o){return o.category === obj.category; });
        existingObj.hits += obj.hits;
        existingObj.bytes += obj.bytes;
    } else {
        groupedObjects[i] = obj;
        categories[i] = obj.category;
        i++;
  }
});

groupedObjects = _.sortBy(groupedObjects,function(obj){ return obj.bytes; }).reverse();
1
ответ дан jackwanders 18 August 2018 в 04:15
поделиться

Привет, вот одно из написанных мной решений. Посетите: aggregate_groupby_js на npm или в aggregate_groupby_js на github

Библиотека javascript для использования агрегатных функций на массив объектов. Основные функции, такие как SUM, MIN, MAX, AVG, DISTINCT_COUNT для целых объектов javascript

Пример:

var arr = [{`"shape"`:`"square"`,`"color"`:`"red"`,`"used"`:1,`"instances"`:1},
    {`"shape"`:`"square"`,`"color"`:`"red"`,`"used"`:2,`"instances"`:1},
    {`"shape"`:`"circle"`,`"color"`:`"blue"`,`"used"`:0,`"instances"`:0},
    {`"shape"`:`"square"`,`"color"`:`"blue"`,`"used"`:4,`"instances"`:4},
    {`"shape"`:`"circle"`,`"color"`:`"red"`,"`used"`:1,`"instances"`:1},
    {`"shape"`:`"circle"`,`"color"`:`"red"`,`"used"`:1,`"instances"`:0},
    {`"shape"`:`"square"`,`"color"`:`"blue"`,`"used"`:4,`"instances"`:5}, 
    {`"shape"`:`"square"`,`"color"`:`"red"`,`"used"`:2,`"instances"`:1}];

// Specify columns
    var columns =[`"used"`, `"instances"`];

// Initialize object
    var gb = new GroupBy(arr,columns);
// or
    var gb = new GroupBy(arr,[`"used"`, `"instances"`]);

// Call the aggregate functions    
    gb.sum();
    gb.min();
    gb.max();
    gb.avg();
    gb.distinctCount();
0
ответ дан Naim Sulejmani 18 August 2018 в 04:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: