Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何在js中比较和替换数组中的值?_Javascript_Arrays_Object - Fatal编程技术网

Javascript 如何在js中比较和替换数组中的值?

Javascript 如何在js中比较和替换数组中的值?,javascript,arrays,object,Javascript,Arrays,Object,我有一个对象数组,每个对象包含两个属性,月和计数。计数的默认值为0。我还有一个对象数组,它是从一个json文件中提取的,具有不同的计数值。我正在尝试将计数值从第2个数组替换为第1个数组 乙二醇 我的问题是,我的第二个数组较短,因为缺少了几个月(因为它们在db中没有值),在这种情况下,我想跳过并转到下一个对象。所以最终的结果是这样的 array1[ { month:1, count:5 }, { month:2, count:3 }, {

我有一个对象数组,每个对象包含两个属性,月和计数。计数的默认值为0。我还有一个对象数组,它是从一个json文件中提取的,具有不同的计数值。我正在尝试将计数值从第2个数组替换为第1个数组

乙二醇

我的问题是,我的第二个数组较短,因为缺少了几个月(因为它们在db中没有值),在这种情况下,我想跳过并转到下一个对象。所以最终的结果是这样的

array1[
  { 
    month:1,
    count:5
  },
  { 
    month:2,
    count:3
  },
  { 
    month:3,
    count:9
  },
  { 
    month:4,
    count:0
  }
  { 
    month:5,
    count:4
  }
  etc...
]
到目前为止我的代码

var array1 = [];

for (var i = 1; i <= 12; i++) {
  array1.push({
    month: i,
    count: 0
  })
}


$.getJSON(url, function (data) {
  for (var i = 0; i < data.length; i++) {
    if (array1[i].month == data[i].month) { //work until month 4
        array1[i].count = data[i].count 
    }
});

console.log(array1);
var数组1=[];

对于(var i=1;i如果数组中始终有一年中的月份,则可以使用该月份作为原始数组的索引,并在必要时进行更新

for (var i = 0; i < data.length; i++) {
    array1[data[i].month - 1].count = data[i].count;
}
for(变量i=0;i
结果将出现在第一个数组中:

function mergeArrays(arr1, arr2) {
    arr1.forEach(function(item1) {
        var item2 = arr2.find(function (item2) {
            return item2.month === item1.month;
        });
        if (item2) {
            Object.assign(item1, item2);
        }
    })
}
function mergeArrays(arr1, arr2) {
    arr1.forEach(function(item1) {
        var item2 = arr2.find(function (item2) {
            return item2.month === item1.month;
        });
        if (item2) {
            Object.assign(item1, item2);
        }
    })
}