清理对象数组
Clean array of objects
我的实现如下:
var test = [{},{},{}];
我的测试变量是一个对象数组。最后一个对象可以为空,也可以有键。
我需要删除最后一个对象,如果它总是空的。
我现在写的是这样的:
var lengthofTest = test.length;
if(Object.keys(test[lengthofTest]).length == 0) {
test.pop();
}
有更好的方法吗?还有更直接的吗?
有更好的方法吗?
取决于你对"更好"的定义。:-)对我来说,这是一个好方法,除了几个细节:
-
您需要
test[lengthofTest - 1]
,而不是test[lengthofTest]
。(记住,索引从0
开始,所以从0
到length - 1
。) -
你不需要变量
-
如果您不使用结果,则不需要
pop
,只需减少length
:
if (Object.keys(test[test.length - 1]).length == 0) {
--test.length;
}
还有更直接的吗?
你可以使用for-in
:
var lengthofTest = test.length;
for (var key in test[lengthofTest-1]) {
if (test[lengthofTest-1].hasOwnProperty(key)) {
--test.length;
break;
}
}
…但正如你所看到的,它要冗长得多,在上面的例子中,它假设数组上没有非索引属性(我的意思是在另一个答案中详细说明)。
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象