Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript按组对数组排序?_Javascript_Jquery_Arrays_Sorting_Group By - Fatal编程技术网

如何使用javascript按组对数组排序?

如何使用javascript按组对数组排序?,javascript,jquery,arrays,sorting,group-by,Javascript,Jquery,Arrays,Sorting,Group By,我有一个包含12个条目的数组。我喜欢按标题分类。许多文章都有相同的标题,我可能很容易,因为标题是相同的。 最后我可能是3到4组 我有非常小的javascript代码,因为我不知道我是想用循环还是其他方法来实现它 Javascript var totalGroups = []; var actualGroup = []; var contentarticles = articles.contentarticles, article,

我有一个包含12个条目的数组。我喜欢按标题分类。许多文章都有相同的标题,我可能很容易,因为标题是相同的。 最后我可能是3到4组

我有非常小的javascript代码,因为我不知道我是想用循环还是其他方法来实现它

Javascript

 var totalGroups = [];
        var actualGroup = [];

var contentarticles = articles.contentarticles,
                article,
                $out = $("#articlesOutput");


                for (var i = 0; i < contentarticles.length; i++) {
                    if (!article || article.title != contentarticles[i].title) {
                        article = contentarticles[i];

                        document.getElementById('articleForNaviTopTitle').innerHTML = article.title;
                        document.getElementById('articleForNaviTopID').innerHTML = article.id;

                        var articlesOutput = [
                            '<li><a href="./certifiedTraining/id=', article.id, '/step=', i + 1, '">',
                            article.title,
                            '</li>'
                        ].join("");
                        $out.append(articlesOutput);
                    }
                }
// till this point all works fine, and a code above gives results in the image below.

//**Im struggeling right there, how to sort this array by groups?????**

while (article.title(this) == article.title(next))
  {
  code block to be executed
  }
var totalGroups=[];
var-actualGroup=[];
var contentarticles=articles.contentarticles,
文章
$out=$(“#articlesOutput”);
for(var i=0;i”,
第1条标题,
“”
].加入(“”);
$out.append(articlesOutput);
}
}
//直到这一点,所有的工作都很好,上面的代码在下图中给出了结果。
//**我正在苦苦思索,如何按组对数组排序**
while(article.title(this)=article.title(next))
{
要执行的代码块
}

我不确定我是否理解你所说的“按组排序数组”的意思。假设您希望按标题对数组进行排序;然后你会有这样的结果:

contentarticles.sort(function(a, b) {
    if (a.title > b.title) return 1;
    if (a.title < b.title) return -1;
    return 0;
 });
通过这种方式,您将拥有一个对象,其中属性是其自身的标题,每个属性将包含一个包含完整文章对象的数组。因此,一旦你有了标题,你就可以获得所有标题相同的文章。如果您想要所有标题的列表,可以使用;如果要迭代,可以使用


这里是我使用的方法。

我不确定我是否理解你所说的“按组排序数组”的意思。假设您希望按标题对数组进行排序;然后你会有这样的结果:

contentarticles.sort(function(a, b) {
    if (a.title > b.title) return 1;
    if (a.title < b.title) return -1;
    return 0;
 });
通过这种方式,您将拥有一个对象,其中属性是其自身的标题,每个属性将包含一个包含完整文章对象的数组。因此,一旦你有了标题,你就可以获得所有标题相同的文章。如果您想要所有标题的列表,可以使用;如果要迭代,可以使用


这里是我使用的方法。

如果我理解正确,你想要的是挑出每个对象并按标题分组排序。如果我是你,我会看一眼。这是一个很好的js实用程序集合

var grouped = _.groupBy(yourObjects, 'title');

如果我理解正确的话,你想要的是挑选出每一个对象并按标题分组排序。如果我是你,我会看一眼。这是一个很好的js实用程序集合

var grouped = _.groupBy(yourObjects, 'title');

是否要对进行排序,或将其聚合到存储桶中?另外,您似乎遇到了一些非ASCII字符的编码问题。它只是一个数组列表0到11。但我想把它分组分类。同一组中应包含标题相同的文章。也许我应该使用对象而不是数组?在计算机编程中,“排序”通常意味着“排序”。听起来你的意思是“收集”。顺便说一句,帖子中的图片很烦人,因为我们无法将它们剪切并粘贴到Javascript控制台中。请发布Javascript文本,显示您拥有的内容和您试图获取的内容。您想
排序
,还是聚合到bucket中?另外,您似乎遇到了一些非ASCII字符的编码问题。它只是一个数组列表0到11。但我想把它分组分类。同一组中应包含标题相同的文章。也许我应该使用对象而不是数组?在计算机编程中,“排序”通常意味着“排序”。听起来你的意思是“收集”。顺便说一句,帖子中的图片很烦人,因为我们无法将它们剪切并粘贴到Javascript控制台中。请发布Javascript文本,显示您所拥有的以及您试图获取的内容。请查看右侧的图像。它只是一个数组列表0到11。但我想把它分组分类。同一组中应包含标题相同的文章。也许我应该使用对象而不是数组?在我的数组中应该至少有3个这样的组,它们的标题是相同的。很清楚你现在拥有什么,但不清楚你想要获得什么结构。我会尝试在答案中做一些例子,但你必须更明确一点。好的代码——我从来没有想过使用
reduce
为此,我总是用
if
的显式循环来编写这种东西。好的,我会测试它是如何工作的,我现在就给你!我想我使用了错误的术语“排序”,我只需要说“排序”,注意,在这种情况下不是“排序”,至少对我来说是这样。它只是在同一组下“收集”具有相同属性的项。所以这更像是“分组”。但如果这是你所期望的,请告诉我。注意,我更新了代码,因为有一个错误。请看右边的图片。它只是一个数组列表0到11。但我想把它分组分类。同一组中应包含标题相同的文章。也许我应该使用对象而不是数组?在我的数组中应该至少有3个这样的组,它们的标题是相同的。很清楚你现在拥有什么,但不清楚你想要获得什么结构。我会尝试在答案中做一些例子,但你必须更明确一点。好的代码——我从来没有想过使用
reduce
为此,我总是用
if
的显式循环来编写这种东西。好的,我会测试它是如何工作的,我现在就给你!我想我使用了错误的术语“排序”,我只需要说“排序”,注意,在这种情况下不是“排序”,至少对我来说是这样。只是“收集”