javascript中$ .map函数的用途是什么?

时间:2015-07-23 04:35:43

标签: javascript jquery

注意:我只是想了解$ .map在以下代码中做什么。

我正在开发openstack,在其中一个javascript文件中他们使用$ .map函数请参阅horizon.d3linechar.js

我的问题是$ .map是如何工作的,在map之前是$。 $ .map与javascript或jquery相关联。

$.map(self.series, function(serie) {
        serie.color = last_point_color = self.color(serie.name);
        $.map(serie.data, function(statistic) {
          // need to parse each date
          statistic.x = d3.time.format.utc('%Y-%m-%dT%H:%M:%S').parse(statistic.x);
          statistic.x = statistic.x.getTime() / 1000;
          last_point = statistic;
          last_point.color = serie.color;
        });
      });

2 个答案:

答案 0 :(得分:1)

请阅读jQuery文档。他们有很多例子。我们的民众真的想帮助你。但是你在$.map()函数中缺乏理解是什么?

$只是名称空间,至少使地图功能起作用。所以忘了它。

map( input, outputFunction )正在迭代必须是真实数组的inputoutputFunction,通常是一个自执行函数,能够操纵输入数组中每个元素的内容。

在您的示例中:

$.map(self.series, function(serie) {

self.series是输入,该数组的每个元素将在匿名或相当自执行的函数中被称为serie

serie.color = last_point_color = self.color(serie.name);

更改一些颜色......

$.map(serie.data, function(statistic) {

下一次调用映射函数。

  // need to parse each date
  statistic.x = d3.time.format.utc('%Y-%m-%dT%H:%M:%S').parse(statistic.x);

将日期解析为评论中描述的特定格式。

  statistic.x = statistic.x.getTime() / 1000;

x值解析为时间或可能为秒,然后除以1000。

  last_point = statistic;

serie.data的元素保存到临时变量。

  last_point.color = serie.color;

将系列的颜色保存到该系列的元素。

    });
  });

总而言之...... ... $.map()遍历self.series,然后遍历其子项,然后看起来它会将每个元素的颜色更改为该系列的颜色。

答案 1 :(得分:0)

$jQuery对象的别名。

至于map()jQuery中的 api 函数用于转换数组中的项目。

如果查看地图的source,基本算法是迭代传入的elems并使用回调获得转换后的值

function (elems, callback) {
    var value, i = 0,
        length = elems.length,
        ret = [];

      for (; i < length; i++) {
      //alternatively, for objects,  for (i in elems) {
            value = callback(elems[i], i);

            if (value != null) {
                ret.push(value);
            }
        }
    // Flatten any nested arrays
    return concat.apply([], ret);
}