我有两个数组数组,其中格式化日期作为键,数字作为相应的值。
第一个数组为我提供了使用 moment.js 的最后 7 天的数据,并且所有值都设置为零。
第二个数组为我提供了上周几天的一些有意义的统计数据(如果有的话);在当前实例中,只有一天会返回任何数字。
我想将第二个数组合并到第一个数组中并保留优先级,即初始时间段数组值将被第二个数组中的值覆盖,然后返回一个用于图表等的数组。
我尝试通过转换为对象并使用下划线扩展方法来做到这一点,但排序没有保留,这很重要。
这是当前代码:
var length = 7,
day = moment(),
arr = [];
while (length--) {
arr.push([day.subtract('days', length).format('D MMM'), 0]);
}
返回最近 7 天的数组,例如
[["26 Nov", 0], ["27 Nov", 0]]...
然后我从数据库查询中得到以下内容:
[["26 Nov", 6]]
所以我希望最终结果是:
[["26 Nov", 6], ["27 Nov", 0]]...
最佳答案
使用 native 脚本
for(var i=0; i < newArray.length; i++){
var d=newArray[i][0];
for( var j= 0; j < oldArray.length ; j++){
if( oldArray[j][0] ===d){
oldArray[j][1] = newArray[i][1];
}
}
}
关于javascript - 如何合并两个数组,类似于对象的下划线扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20320566/