Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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 jQuery相当于原型收集和映射函数?_Javascript_Jquery_Arrays_Prototypejs - Fatal编程技术网

Javascript jQuery相当于原型收集和映射函数?

Javascript jQuery相当于原型收集和映射函数?,javascript,jquery,arrays,prototypejs,Javascript,Jquery,Arrays,Prototypejs,jQuery是否提供了一个等价的迭代器函数来“收集”和“映射”原型?这些函数返回对每个元素应用迭代器的结果: 谢谢 有一个“map()”但没有“reduce()”或“collect()”。jQuery人员有相当长的历史,在jQuery核心代码本身没有明显好处的情况下,他们拒绝添加“reduce()” 您可以从库中获取和扩展类似函数的简单实现 另外,请注意jQuery“map”工具有几个有问题的特性,这些特性有时很方便,但有时会带来严重的麻烦。具体地说,传入“map()”的回调函数将返回结果数组的

jQuery是否提供了一个等价的迭代器函数来“收集”和“映射”原型?这些函数返回对每个元素应用迭代器的结果:

谢谢

有一个“map()”但没有“reduce()”或“collect()”。jQuery人员有相当长的历史,在jQuery核心代码本身没有明显好处的情况下,他们拒绝添加“reduce()”

您可以从库中获取和扩展类似函数的简单实现

另外,请注意jQuery“map”工具有几个有问题的特性,这些特性有时很方便,但有时会带来严重的麻烦。具体地说,传入“map()”的回调函数将返回结果数组的值,正如您所期望的那样。但有两种特殊情况:

  • 如果函数返回
    null
    undefined
    ,则不向结果数组添加任何内容;换句话说,它被解释为跳过该元素的请求。这使得结果数组很难显式地包含
    null
    条目
  • 如果函数返回一个数组,那么该数组将被插值到结果数组中。换句话说,如果函数返回一个包含10项的数组,那么结果数组(即,调用“map()”)最终将返回的数组)将由10个新元素扩充,而不是由一个值为10项数组的元素扩充

  • 这两种食物有时都很方便,但在花了半天时间发现第二种之后(是的,有文档记录),我有一些痛苦的记忆:-)

    jQuery的等价物是
    .map()
    ()

    因此,如果原型中有:

    ['Hitch', "Hiker's", 'Guide', 'To', 'The', 'Galaxy'].collect(function(s) {
      return s.charAt(0).toUpperCase();
    }).join(''); // -> 'HHGTTG'
    
    只需将
    collect
    替换为
    map
    (或者如果已经在使用
    map
    ,则无需更改任何内容!):


    这也应该作为一个平滑的过渡,从你描述的算法,听起来很像我所知道的平面地图,这也是同样的地图后平坦。
    ['Hitch', "Hiker's", 'Guide', 'To', 'The', 'Galaxy'].map(function(s) {
      return s.charAt(0).toUpperCase();
    }).join(''); // -> 'HHGTTG'