我有这个功能:flotLinea:function(tareas){var self = this;console.info(tareas); var aTar = new Array(); for(var i = 0;i<tareas.length;i++){ var val = new Array(new Date(tareas[i].fecha_registro),tareas[i].porcentaje); aTar.push(val); } console.info(aTar);},使用console.info(tareas);打印此:并使用console.info(aTar); print:(来自tareas的数据总是在变化,因为数据来自下拉列表)我需要使用相同的数据为每个id_usu创建一个新数组,该怎么做?例如在这种情况下,我需要一个id_usu = 4的数组(是两个id_usu = 4,所以我需要id_usu = 4的数据),一个id_usu = 6的数组和一个id_usu = 9的数组我需要这样做,因为此数据用于图表,因此,之后,每个用户(id_usu)在该图表中将具有不同的颜色。 最佳答案 根据我对问题陈述和所提供代码的理解,下面提供了一个解决方案。flotLinea:function(tareas){ var self = this; console.info(tareas); var aTar = new Array(); var idArray = []; for(var i = 0;i<tareas.length;i++){ if(idArray.indexOf(tareas[i].id_usu) == -1){ var val = new Array(new Date(tareas[i].fecha_registro), tareas[i].porcentaje); idArray.push(tareas[i].id_usu); aTar.push(val); } else{ for(var j = 0; j < aTar.length; j++){ if(tareas[i].id_usu == aTar[j][0].id_usu){ aTar[j].length = new Array(new Date(tareas[i].fecha_registro) ,tareas[i].porcentaje); } } } } console.info(aTar);}我使用的是蛮力解决方案,可以随时提高性能。我已经在上面的新数组中创建了idArray来保存唯一的id_usu,并且正在比较当前的tareas[i].id_usu是否已经在该数组中,如果没有,则将新值推送到aTar数组和到tareas[i].id_usu,否则循环遍历idArray数组并找到已经具有当前aTar对象的数组,并将新值推入tareas[i].id_usu。
10-08 03:12