尽管我的问题来自DataTables.net,但我认为它适用于其他地方:
我从DataTables创建的表中检索类似数组的对象,如下所示:
var data = tableInstance.data(); // tableInstance is already a DataTables table instance
但是数据虽然类似于数组,但实际上是一个用DataTables API装饰的对象,导致了一个看起来像这样的“数组”(简化为假的“简短”版本):
[
0: {thing: "stuff"},
1: {thing: "nextStuff"},
$: function(){},
button: function() {},
length: 2
]
我只想隔离实际的数组。有人发现这样做的优雅方式吗? “显而易见”的方法是仅迭代X次,直到data.length。例如,使用“每个”迭代器本质上就是这样做的:
var newData = [];
data.each(function (el, index) {
newData.push(el);
})
但是我不禁想知道是否有更好的方法。通过删除不需要的属性,而不是通过将需要的项目推入新数组来生成新数组(或就地编辑,无需重新编译)。
或者这仅仅是微优化(甚至有成千上万个项目)的太多内容而已吗?