javascript - 尝试弄清楚如何按类别 JSON 对随机项目进行排序

标签 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"
  }
]

最佳答案

您需要首先使用类别中的项目创建一个临时数组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);            
}

关于javascript - 尝试弄清楚如何按类别 JSON 对随机项目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41126095/

相关文章:

javascript - 如何定义具有可变数量的键的 typescript 类型?

javascript - 在调整大小的容器中重新排列网格元素,保持一个图 block 不变

javascript - 如何将用户重定向到引用页面

javascript - 如何找到对象的哪些属性包含特定值?

javascript - 循环中的文本淡入/淡出动画

javascript - 按比例缩放图像以适合其父对象

javascript - 安装过程中出现错误 : Extension is invalid - Adapting chrome extension into firefox

javascript - jquery ui 弄乱了工具提示

python - 如何改进解析 lz4 压缩 json 的方法?

javascript - AngularJS:使用 "ng-click"并获取特定的 JSON 文件