Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Language Implementation - Fatal编程技术网

Javascript实现问题:如何使此函数显示值

Javascript实现问题:如何使此函数显示值,javascript,arrays,language-implementation,Javascript,Arrays,Language Implementation,请原谅,我确实知道js基础知识以及如何编写/调用基本函数,但在本例中,我尝试将DB中的alpha排序的类别列表与下面指定的所述类别的集合(非alpha)顺序进行匹配(这是一段代码,建议其他用户在我询问如何映射返回的类别顺序时使用)。但是,我不知道如何将该用户的代码答案集成到我自己的代码中 只是看到它在另一个示例列表中实现(模仿我从DB中获取的内容)我将如何在switch case语句中调用它,将我的html包装在类别名称周围,并以我想要的映射顺序返回到网页,这将非常有帮助。如果这是显而易见的,那

请原谅,我确实知道js基础知识以及如何编写/调用基本函数,但在本例中,我尝试将DB中的alpha排序的类别列表与下面指定的所述类别的集合(非alpha)顺序进行匹配(这是一段代码,建议其他用户在我询问如何映射返回的类别顺序时使用)。但是,我不知道如何将该用户的代码答案集成到我自己的代码中

只是看到它在另一个示例列表中实现(模仿我从DB中获取的内容)我将如何在switch case语句中调用它,将我的html包装在类别名称周围,并以我想要的映射顺序返回到网页,这将非常有帮助。如果这是显而易见的,那么很抱歉。我正在尝试了解我在遇到这些问题时能做些什么。谢谢

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

给出的代码很可能使用jQuery JavaScript库,该库具有一些有用的函数,例如用于操作数组的
map()

代码假设您有一个jQuery对象/数组,
businesss
,其中包含您需要订购的业务

  • 将数组中的每个项目依次传递给map函数。map函数使用一个函数来说明每个项目应该如何映射
  • 匿名函数
    function(category)..
    接受一个参数,即在此迭代中传递给它的特定项,并将返回映射结果
  • 返回的结果是对
    业务
    调用filter的函数,并向其传递一个函数,说明如何对业务进行筛选
  • 匿名函数
    function(business)…
    接受一个参数,作为
    business
    传递给它的特定项被迭代,并返回与外部函数中的类别参数范围相匹配的项
  • 最终结果是一个按类别数组排序的项目数组
    ['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”]

    非常感谢Russ。事实证明,这是遗漏的一大步。在最初的问题中,听起来我可以在不使用任何库的情况下实现他们的答案……我为此苦苦挣扎了一个小时,并被我在过滤器和地图功能等方面的谷歌搜索进一步弄糊涂了。无论如何,这是清晰、简洁的,我感觉很好现在提问就不那么尴尬了。这也是一堂关于数组映射的好课!!!!干杯!