Как установить i в 0 первого элемента по критериям json - PullRequest
0 голосов
/ 28 декабря 2010

Я хочу установить для i значение 0 первого элемента из критерия json, например.если критерий зеленый в этом случае, я начну с 3 ... если критерий = синий, то он начнется с 2 ... мне нужно установить его, чтобы он начинался с 0 или 1, будь то .. также, как подсчитать общеекритериев, например.зеленый всего 2, синий = 1, красный = 2 ... заранее спасибо!

var myBox_html ="";
var i = 0;

function createDiv(1x,2x,3x) {
    A = '<something>'+1x;
    B = '<something>'+2x;
    C = '<something>'+3x;

    myBox_html += '<something-more>'+A+B+C;
}

criteria // is a parameter from url, in this case means green

get_it = function(doc) {
    var jsonData = eval('(' + doc + ')');        
    for (var i=0; i<jsonvar.name.length; i++) {
        var 1x = jsonvar.name[i].1;
        var 2x = jsonvar.name[i].2;
        var 3x = jsonvar.name[i].3;

        if (1x == criteria){                                                    
            var Div = createDiv(1x,2x,3x);     
        } else {null}
    }   

    document.getElementById("myBox").innerHTML = myBox_html;
}          
get_it();

json должен выглядеть так:

var jsonvar = {"name":[{"1":"red","2":"round","3":"fruit"},{"1":"red","2":"squared","3":"box"},{"1":"blue","2":"squared","3":"box"},{"1":"green","2":"squared","3":"box"},{"1":"green","2":"pear","3":"fruit"}]};

1 Ответ

0 голосов
/ 30 декабря 2010

Рассмотрим несколько решений:

1: Создание группового ответа JSON на стороне сервера.Например,

var jsonvar = '{"name":{
  "red": [{"1":"red","2":"round","3":"fruit"}, {"1":"red","2":"squared","3":"box"}],
  "blue": [{"1":"blue","2":"squared","3":"box"}],
  "green":[{"1":"green","2":"squared","3":"box"}, {"1":"green","2":"pear","3":"fruit"}]}}';

2: преобразовать массив JSON в формат, сгруппированный по критериям, как определено выше.Вот пример подпрограммы для такой группировки:

function group_elements (arr) {
    var result = {};
    for (var i=0; i < arr.length; i++) {
        if (!result[arr[i][1]]) {
            result[arr[i][1]] = [];
        }
        result[arr[i][1]].push(arr[i]);
     }
     return result;
}

Оба решения позволяют выполнять итерации только отфильтрованных записей и считать длину группы.

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