Сообщение от laimas
|
такого массива быть не может
|
Небольшое уточнение. Синтаксически он вполне может быть, однако, смысла в этом действительно, наверное нет, так как любой объект можно использовать в качестве массива, разве что для сахара. Собственно, тип объекта в данном случае меняется.
UPD Впрочем, смысл, таки, есть. Такая структура автоматически апдейтит свою длину. Мы получаем нечто вроде HTML-коллекции, только лучше.
transform=function(src){
var arr=[]; for(var i in src){if(!src.hasOwnProperty(i)) return arr;
arr[i]=src[i]} return arr}
arr=transform({foo: "bar", baz: "foo"})
ob={foo: "bar", length: 0}
arr[0]="foo"
ob[0]="foo"
console.log(arr, arr.length, arr.baz, ob.length)
arr.forEach(function(x){console.log(x)})
// ::: [ 'foo', foo: 'bar', baz: 'foo' ] 1 'foo' 0
// ::: foo