我知道在JavaScript中,有时候系统会创建一个假数组,这意味着它实际上是一个对象而不是Array的一个实例,但仍然具有部分功能数组。例如,你在函数内部得到的arguments变量是由系统创建的一个假数组。在这种情况下,我知道,把它变成一个真正的数组,你可以这样做:将由我创建的假数组转换为真正的数组,使用JavaScript
var realArray = Array.prototype.slice.call(fakeArray);
但是,如果伪阵列不是由系统创建的,要是fakeArray很干脆:
var fakeArray = { "0": "some value", "1": "another value" };
在这种情况下,我测试了它,使用上面的方法将导致一个空数组。我希望能够像我在我给的例子(由我而不是由系统创建的)中将假数组变成真实数组。在你告诉我从一开始就把假数组变成一个真正的数组之前,你应该知道我从一个我无法控制的资源中获取假数组。
那么,如何将未由系统创建的假数组转换为真实数组?
你试过到'length'属性添加到对象?我相信几乎所有'Array。*'修改都使用数组的长度。 – Zeta 2012-07-30 14:01:46
@Elias Van Ootegem你显然没有读完我的整个问题。 – Cokegod 2012-07-30 14:03:49
@EliasVanOotegem为什么不在问问题之前先回答问题? – 2012-07-30 14:04:01