0

请原谅我,但我确实知道 js 基础知识以及如何编写/调用基本函数,但在这种情况下,我试图匹配来自数据库的 alpha 排序类别列表以匹配我的设置(非 alpha)顺序如下指定的所述类别(这是另一个用户在我询问的有关如何映射返回的类别顺序的问题上建议使用的代码)。但是,我不知道如何将那个人的代码答案集成到我自己的代码中。

只是看到它针对另一个示例列表实现(以模仿我将从数据库中获取的内容)以及我将如何在 switch case 语句中调用它以将我的 html 包装在类别名称周围并以映射的顺序将它们返回到网页我想要会有很大帮助。对不起,如果结果很明显。当我遇到这些问题时,我正在努力学习我能做的事情。谢谢!

var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
    return businesses.filter(function (business) {
        return business.category === category;
    });
});
4

1 回答 1

2

给出的代码看起来最有可能使用 jQuery JavaScript 库,该库具有一些有用的功能,例如map()用于操作数组。

该代码假定您有一个 jQuery 对象/数组,businesses其中包含您需要订购的业务。如果我们从外部读取它

  1. 将数组中的每一项依次传递给 map 函数。map 函数接受一个函数来说明每个项目应该如何映射。
  2. 匿名函数function (category)...接受一个参数,即在此迭代中传递给它的特定项目,并将返回映射结果。
  3. 返回的结果是一个调用过滤器的函数,businesses并传递一个函数来说明应该如何过滤业务。
  4. 匿名函数function (business)...接受一个参数,传递给它的特定项目businesses被迭代并返回与外部函数范围内的类别参数匹配的那些。
  5. 最终结果是按类别数组排序的项目数组[ 'F', 'C', 'A1', 'A2', 'A3' ]

如果我们回到最初的问题,您需要根据客户的偏好订购类别列表。让我们创建一个对象文字来映射排序

var map = {
    F : 5,
    C : 3,
    A1 : 1,
    A2 : 4,
    A3 : 2
}

我们可以使用这个映射来使用sort方法对数组进行排序

var array = ['F', 'C', 'A1', 'A2', 'A3'];

array.sort(function(a,b) {
    return map[a] - map[b];
});

这返回了我们["A1", "A3", "C", "A2", "F"]

于 2010-08-16T22:44:25.907 回答