gpt4 book ai didi

javascript - 按键值对 JavaScript 数组中的对象进行排序

转载 作者:行者123 更新时间:2023-11-30 06:44:32 25 4
gpt4 key购买 nike

我可能想出了一个非常粗略的方法来完成这类事情,但我想我会请教在座的许多专家。基本上,我有一个类似于以下内容的数组:

var bugs = [
{
id: "197526",
title: "Updating Lighthouse",
summary: "Enhancing the UI of Lighthouse",
status: "Active",
project: "Lighthouse",
area: "Internal Web Applications",
hours: 19
},
{
id: "190328",
title: "Adding Login Authentication to Lighthouse",
summary: "Create a login authentication process for Lighthouse",
status: "Active",
project: "Lighthouse",
area: "Administration",
hours: 12
},
...
{
id: "187562",
title: "Create a Maintenance Page",
summary: "Create a maintenance page to be displayed with the company site is down",
status: "Resolved",
project: "Other",
area: "Internal Web Projects",
hours: 4
},
];

基本上,该数组包含多个“bug”,每个都有一个 id、title、summary、status、project、area 和 hours 属性。这些错误中的每一个都将显示在我的 Web 应用程序中,但我允许用户选择它们的分组方式;按状态、项目或区域。根据他们从上面的选择框中选择的三个错误中的哪一个,我希望能够对所有错误进行分类,并根据他们选择的类别对它们进行分组。然后,在显示它们时,为该类别的每个当前选项都有一个简单的标题。例如,如果他们按状态排序,它会是这样的:

Group By: Status

Active
------
Bug with status: "active"
Bug with status: "active"
Bug with status: "active"

Resolved
--------
Bug with status: "resolved"
Bug with status: "resolved"

我是否应该遍历整个错误数组,并根据要排序的类别,简单地为该类别的每个可能选项创建一个新数组,并向其中添加适当的错误?所以在上面的例子中,创建新数组 var activeBugs = []var resolvedBugs = []?如果是这样,那么我的问题就是知道有哪些可能的选择。在创建这些新数组之前,我是否应该首先遍历整个 bugs 数组以查看对于期望组类别存在哪些可能的选项?

如果不求助于其他 jQuery 插件,最好的方法是什么?

最佳答案

为了详细说明我对排序/过滤的必要性提出质疑的评论,您可以在显示逻辑中(非常粗略地)做这样的事情吗?

$('#SortOrder').live('change', function() {
var groupby = $(this).val();

$('#Bugs').empty();

for (var i = 0; i < bugs.length; i++) {
if (!document.getElementById(bugs[i][groupby])) {
$('<h3>', { text: bugs[i][groupby] }).appendTo('#Bugs');

$('<ul>', {
id: bugs[i][groupby]
}).appendTo('#Bugs');
}

var $li = $('<li>', {
text: bugs[i].title
});

$('#Bugs').find('#' + bugs[i][groupby]).append($li);
}
});

工作演示:http://jsfiddle.net/TTApQ/1/

那样根本就没有排序或过滤,你只需要遍历数组一次。

关于javascript - 按键值对 JavaScript 数组中的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com