gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:05:41 25 4
gpt4 key购买 nike

我有这个功能:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com