我有一个看起来像这样的对象:
0
Object { id="24105", x="10", y="4", more...}
1
Object { id="24104", x="6", y="5", more...}
2
Object { id="24103", x="10", y="6", more...}
3
Object { id="24102", x="10", y="3", more...}
4
Object { id="24101", x="8", y="6", more...}
5
Object { id="24100", x="6", y="1", more...}
6
Object { id="24099", x="10", y="8", more...}
7
Object { id="24098", x="8", y="3", more...}
8
Object { id="24097", x="8", y="7", more...}
9
Object { id="24096", x="10", y="2", more...}
10
Object { id="24095", x="8", y="1", more...}
11
Object { id="24094", x="6", y="2", more...}
12
Object { id="24093", x="6", y="8"}
13
Object { id="24092", x="8", y="8", more...}
14
Object { id="24091", x="6", y="4", more...}
15
Object { id="24090", x="6", y="7", more...}
16
Object { id="24089", x="10", y="1", more...}
17
Object { id="24088", x="4", y="8", more...}
18
Object { id="24087", x="8", y="2", more...}
19
Object { id="24086", x="6", y="6", more...}
20
Object { id="24085", x="10", y="7", more...}
21
Object { id="24084", x="6", y="3", more...}
22
Object { id="24083", x="8", y="5", more...}
23
Object { id="24082", x="10", y="5", more...}
24
Object { id="24081", x="4", y="7", more...}
如您所见,对象中的项目12包含的数据少于其他项目,应该删除。我已经使用delete()来做这件事,但是这并没有对其他项重新编号,这会导致以后在for循环中循环对象时出现错误。
我尝试过使用splice(),但这会导致错误,因为(据我所知)我的对象是一个对象,而不是一个数组。我不完全确定其中的区别。
有什么想法吗?
由于
答案 0 :(得分:2)
我相信你有这样的东西,一个伪装成阵列的物体:
{
0: { id:"24097", x:"8", y:"7",},
1: { id:"24096", x:"10", y:"2",},
2: { id:"24095", x:"8", y:"1",}
}
转换为真实数组:
items = Object.keys( items ).map( function( index ){
return items[index];
});
并使用拼接。
答案 1 :(得分:0)
您可以检测到否。使用Object.keys
对象中的属性,并删除低于预期的对象。
Object.keys()返回一个元素为字符串的数组 对应于直接在对象上找到的可枚举属性。 属性的顺序与循环给出的顺序相同 手动对象的属性。
Object.keys(obj).length
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys