有如下代码:
var arr1 = [1,2,3,4,5,6,7,8,9,10,11,12]; var arr2 = [{ count:3, month:5, }, { count:6, month:7 }]; 现在需要合成另外一个数组: var result = [null,null,null,null,null,3,null,6,null,null,null,null];
即:所求数组有数据(3,5)的为arr2中的count的值,所在的下标为arr2中的month的值,其他置空,数组长度为arr1的长度,请问应该怎么做?
新手求大神指点
三叔2016-11-02 11:11:21
完全无法理解你的描述。看起来像是一个根据月份的统计数据用数组来展现。
另外你的arr2里面mouth:5后面的 ,要去掉
那么这样的话你的arr1没有存在的必要。
var arr2 = [{ 'count':3, 'month':5 }, { 'count':6, 'month':7 }, { 'count':7, 'month':2 }, { 'count':1, 'month':8 }, { 'count':2, 'month':1 }]; console.table(arr2); console.log(arr2); var arrResult = []; arrResult.length = 11; for (var i = arrResult.length - 1; i >= 0; i--) { arrResult[i] = null; }; for (var i = arr2.length - 1; i >= 0; i--) { arrResult[arr2[i].month]=arr2[i].count; }; console.log(arrResult); // 输出[null, 2, 7, null, null, 3, null, 6, 1, null, null] //不做循环null处理的话输出 [1: 2, 2: 7, 5: 3, 7: 6, 8: 1] // 前面数字是下标,后面是值,别忘了数组也是对象。