Показать сообщение отдельно
  #13 (permalink)  
Старый 11.05.2015, 13:59
Интересующийся
Посмотреть профиль Найти все сообщения от drDocument
 
Регистрация: 11.05.2015
Сообщений: 7

Сообщение от 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

Последний раз редактировалось drDocument, 11.05.2015 в 14:24.
Ответить с цитированием