Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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/14.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数组映射2D数组_Javascript_Arrays - Fatal编程技术网

Javascript数组映射2D数组

Javascript数组映射2D数组,javascript,arrays,Javascript,Arrays,我正在尝试聚合下面的数组(arr),以便获得如下输出: 所需输出:['2011-04-11','Open',6','2011-04-11','Closed',4]] 但我得到了: 输出:[2011-04-11,开放时间:6,2011-04-11,关闭时间:4] 如何获取javascript数组映射并将其转换为所需的输出 源代码摘录: var arr = [ ['2011-04-11', 'Open'], ['2011-04-11', 'Closed'], ['2011-0

我正在尝试聚合下面的数组(arr),以便获得如下输出:

所需输出:['2011-04-11','Open',6','2011-04-11','Closed',4]]

但我得到了: 输出:[2011-04-11,开放时间:6,2011-04-11,关闭时间:4]

如何获取javascript数组映射并将其转换为所需的输出

源代码摘录:

var arr = [
    ['2011-04-11', 'Open'],
    ['2011-04-11', 'Closed'],
    ['2011-04-11', 'Closed'],
    ['2011-04-11', 'Open'],
    ['2011-04-11', 'Open'],
    ['2011-04-11', 'Open'],
    ['2011-04-11', 'Closed'],
    ['2011-04-11', 'Closed'],
    ['2011-04-11', 'Open'],
    ['2011-04-11', 'Open']
];

var hist = [];
arr.map(function(a) {
   if (a in hist)
      hist[a]++;
   else
      hist[a] = 1;
});
您可以改为使用:

在reduce操作期间,它使用
hist
来跟踪在正在构建的新数组中可以找到每个项的位置

如果项目已经存在,它将增加其频率元素(第三个元素)。如果项目尚不存在,它将其频率设置为1,并将
hist
更新到新项目的位置


使用
map
时不需要额外的数组,只需返回一些内容即可。在处理数组时,您还希望在中使用
indexOf
而不是
。否则,如果关键帧不是数字,请使用对象。+1。我提出了
console.log(arr.reduce(函数(tillNow,currentItem){tillNow[currentItem]=(tillNow[currentItem]| | 0)+1;返回tillNow;},{})被卡住了:'(
var result = function() {
    var hist = {};

    return arr.reduce(function(previous, current) {
        if (current in hist) {
            previous[hist[current]][2]++;
        } else {
            previous[hist[current] = previous.length] = current.concat(1);
        }
        return previous;
    }, []);
}();