你好我现在正在使用javascript,我想从数组中删除零值,数组看起来像这样,
0 : Object
color : "#24a7e1",
data : Array[119],
name : "Active
status : 2
1 : Object
color : "#26a727",
data : Array[119],
name : Completed,
status: 4
这个数组可以有任意数量的对象,我需要做的是循环遍历数组,下降到每个数据属性,并从该数组中删除任何0的值。
我尝试使用对象
的特定数组for(var i=0; i<filteredValueData[0].data.length;i++ )
{
if(filteredValueData[0].data[i] == 0)
filteredValueData[0].data[i].splice(i,1);
}
我收到了错误,
filteredValueData [0] .data [i] .splice不是函数
所以我不确定我做错了什么,对象可以有0个阵列到5个阵列的任何位置
答案 0 :(得分:0)
其中有几个问题,请尝试更新一个
for(var i=0; i<filteredValueData[0].data.length;i++ )
{
if(filteredValueData[0].data[i] == 0)
{
filteredValueData[0].data.splice(i,1); //data[i] is replaced with data
i--; //reduce the i counter;
}
}
检查这个简单的例子
var a = [1,2,3,0,2,1,0,2,3];
for(var i=0; i<a.length;i++ )
{
if(a[i] == 0)
{
a.splice(i,1); //data[i] is replaced with data
i--; //reduce the i counter;
}
}
console.log(a);//[1, 2, 3, 2, 1, 2, 3]
答案 1 :(得分:0)
filteredValueData[0].data[i].splice(i,1);
这意味着您尝试在数组中的i元素上运行代码。如果我理解正确,那么我会这样做
for(var i=0; i<filteredValueData.length;i++ )
{
filteredValueData[i].data = filteredValueData[i].data.filter(function(item){return item !== 0})
}