javascript - 在具有两个元素的数组中查找正点元素javascript

标签 javascript arrays multidimensional-array array-map

我有以下情况:

1).月份为 1 到 12 且值为 0 的一个数组:

var months = [[1,0], [2,0], [3,0], [4,0], [5,0], [6,0], [7,0], [8,0],
              [9,0], [10,0], [11,0], [12,0], [13,0]];

2).另一个小数组,表示用户连接到网站的次数:

 data1 = [[1, 40], [2, 50]]

我想要做的是重叠两个数组,运行数组 data1 中的数组月份中的值。

所以结果必须是:

data1 = [[1,40], [2,50], [3,0], [4,0], [5,0], [6,0], [7,0], [8,0], 
         [9,0], [10,0], [11,0], [12,0], [13,0]];

找不到访问每个数组的第一个元素的方法(几个月),这是我迄今为止尝试过的:

 for (var x = months.length - 1; x >= 0; x--) {
    for (var j = monthConn.length - 1; j >= 0; j--) {
        console.log(monthConn[j]); 
        for (var p = 0; p < monthConn[j].length; p++) {
           console.log(monthConn[j][p]);
        };
        // console.log(months[x].indexOf(monthConn[j]));
     };
    };

我在 console.log 中得到的内容:

["5", "2"]
5
2

我该怎么做?

最佳答案

您只需迭代 data1,并访问月份的第 n-1 位置,其中 n 是第一个元素每个条目的:

var months = [[1,0], [2,0], [3,0], [4,0], [5,0], [6,0], [7,0], [8,0], [9,0], [10,0], [11,0], [12,0], [13,0]]

var data1 = [[1, 40], [2, 50]]

// clone months array
var overlapped = months.slice()

// for every data1 value, update corresponding month
data1.forEach(function(monthData){
  overlapped[monthData[0]-1][1] = monthData[1]
})

// et voilá
console.log(overlapped)

参见fiddle .

关于javascript - 在具有两个元素的数组中查找正点元素javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31519689/

相关文章:

javascript - Angular 5父子动画不能同时工作

javascript - 按类别和元值查询帖子

objective-c - 二维数组的 C 内存管理

javascript - 从 lodash fill 与常规数组填充数组时出现不良结果

Perl Foreach 通过多维数组?

javascript - Pager JS 参数和 Knockout

javascript - JQuery 切换和图像

javascript - 根据输入将值添加到数组、求和或减去

c - 如何将二维字符串数组分配给字符指针数组?

python - 如何控制 tensorflow 中的维度广播?