2017-01-27 8 views
-3

Как хранить объекты ExtendScript в ассоциативном массиве?хранить объекты в ассоциативном массиве

var assArray = {}; 

for (i=1; i<=app.project.items.length; i++) { 
    //alert(app.project.item(i).name); one of them is "_vegs" 
    assArray[app.project.item(i).name] = app.project.item(i); 
} 

alert(assArray["_vegs"].name); 

Этот код возвращает ошибку во второй строке оповещения.

Unable to execute script at line 9. undefined is not an object. 

Что мне здесь не хватает?

+0

Почему вы считать от 1 до 'length', почему не от 0 до' длины-1'? – fafl

+0

это ExtendScript. Adobe начинается с 1. – sanjihan

+0

Какая ошибка? – fafl

ответ

0
var assArray = {}; 

for (i=1; i<=app.project.items.length; i++) { 
    //alert(app.project.item(i).name); one of them is "_vegs" 
    assArray[app.project.item[i].name] = app.project.item[i]; 
} 

alert(assArray["_vegs"].name); 

Я думаю, что проблема в (я), надеюсь, [я] будет работать

+0

Nah, item() - это функция в extendscript. Похоже, что они не позволяют хранить объекты в массивах. – sanjihan