Javascript Angularjs-ng重复生成空元素

Javascript Angularjs-ng重复生成空元素,javascript,angularjs,Javascript,Angularjs,我有一个数组,它的键顺序不正确,比如 1: Array[1] 2: Array[2] 4: Array[3] 7: Array[14] 21: Array[1] 22: Array[1] 23: Array[1] 因此,当我使用ng repeat进行迭代时,将为不存在的键值生成空元素和 因此,这里它将为键1和2生成元素,由于没有键3,它将在那里生成一个空div。生成4.3个空元素后也会发生同样的情况。如何修复此问题?您可以通过创建一个具有正确值的新数组来修复数组,也可以在视图中添加一个NOT

我有一个数组,它的键顺序不正确,比如

1: Array[1]
2: Array[2]
4: Array[3]
7: Array[14]
21: Array[1]
22: Array[1]
23: Array[1] 
因此,当我使用
ng repeat
进行迭代时,将为不存在的键值生成空元素和


因此,这里它将为键1和2生成元素,由于没有键3,它将在那里生成一个空div。生成4.3个空元素后也会发生同样的情况。如何修复此问题?

您可以通过创建一个具有正确值的新数组来修复数组,也可以在视图中添加一个NOTNULL或undefined检查

修复阵列

var myArray = [[1], [1,2], null, [1,2,3]];
var newArray = [];
angular.forEach(function (myArray, function (a) {
  if (a & a.length) { 
    newArray.push(a);
  }
})l;
现在可以使用新阵列渲染视图

或者在视图中修复

<div ng-repeat="item in myArray">
   <div ng-if="item !== null && item !== undefined">
   </div>
</div>

为什么不使用对象

"array":[
    {"key":"1", "content":[]}, 
    {"key":"2", "content":[]}, 
    {"key":"5", "content":[]}, 
    {"key":"3", "content":[]}
]

请发布一些代码或创建JSFiddle。您的意思是“缺少”位置为空吗?问题在于数组生成(您正在创建稀疏数组,可能是使用arr[index]=value而不是arr.push设置值),您能否显示该代码段。尝试在源代码处修复,而不是在源代码周围工作。如果不查看数组,则很难理解您想要什么,例如字典。