javascript - 如何在 javascript 循环中为每个特定数据创建一个新数组?

标签 javascript arrays for-loop

我有这个功能:

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); 打印此内容:

enter image description here

并使用console.info(aTar);打印:

enter image description here

(来自 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, else 循环遍历 aTar 数组,找到已经包含当前 tareas[i].id_usu 对象的数组,并将新值推送到 aTar[j ].长度.

关于javascript - 如何在 javascript 循环中为每个特定数据创建一个新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190431/

相关文章:

javascript - 使用 array.push(val) 在 angularjs 中推送数组中的值是否会创建深度复制?

javascript - jQuery Ajax 不将数组作为数据对象发送

file - 在 Go 中按数字顺序对文件进行排序

python - 在 if 语句中传递语句

javascript - 有没有办法可以根据用户事件(例如评论)增加模型中的值?

javascript - 动态改变元素背景(渐变)

javascript - Wagerfield 的示例看起来与源代码不同

javascript - 使用 scala/lift 和 gwt 进行 RIA

python - 当数据重复时如何用 pandas 或 numpy 数组检测下降?

windows - 根据搜索字符串从 REG QUERY 中提取特定注册表项