试图弄清楚如何按类别JSON对随机项进行排序

时间:2016-12-13 16:35:13

标签: javascript jquery json

我正在使用每个循环并从JSON数据库中提取。目前,此循环随机化JSON并在DIV中输出随机项。我试图弄清楚如何添加到这个并让它从一个类别而不是一切中选择一个随机项目。

以下是我的代码:

function similarProduct() {
    $.each(json, function(i,item){
        similarProduct = json[Math.floor(Math.random()*json.length)];
        similarProduct += '<div>' + '<img src="' + similarProduct.imageURL + '">' + '<h3>' + similarProduct.itemName + '</h3>' + '</div>';
    });

    $('#productSimilar').append(similarProduct);            
}   

我的JSON格式如下所示:

[
  {
  "itemName":"Organic Tomatoes",
  "imageURL":"",
  "itemCategory":"Tomatoes"
  },
  {
  "itemName":"Olive Oils",
  "imageURL":"",
  "itemCategory":"Olive Oil"
  }
]

1 个答案:

答案 0 :(得分:1)

您需要首先使用类别中的项目创建临时数组categoryItems,然后从该数组中选择一个随机项。

function similarProduct() {
    var categoryItems = [];
    $.each(json, function(i, item){
        if(item.itemCategory == 'Tomatoes') categoryItems.push(item);
    });

    $.each(json, function(i,item){
        similarProduct = categoryItems[Math.floor(Math.random()*categoryItems.length)];
        similarProduct += '<div>' + '<img src="' + similarProduct.imageURL + '">' + '<h3>' + similarProduct.itemName + '</h3>' + '</div>';
    });

    $('#productSimilar').append(similarProduct);            
}