2013-07-15 5 views
0

Что правильный способ инициализировать объект в этом параметре:Javascript неявного создания объекта

for(var key in (assoc_array||{other.dict.id: other.dict})){ 

} 

здесь я получаю ошибку, что точка в части «other.object.id» не должны быть там. Таким образом, способ, которым это работает:

var default_object = {} 
default_object[other.dict.id] = other.dict; 
for(var key in (assoc_array||default_object)){ 
    ... 
} 

Должен быть способ объявить объект по умолчанию неявным образом?

+0

Ваш второй код является единственным способом пойти I Верно. У вас не может быть названий динамических ключей, как: '{other.dict.id: other.dict}'. Также вы пытаетесь расширить 'assoc_array'? – Shawn31313

+0

Пустые объекты в JavaScript правдивы, просто чтобы вы знали. – Blender

+0

Нет, чтобы не расширять, но инициализировать массив с помощью имени динамического ключа и пары значений как можно меньше кода. :) – mkschreder

ответ

0

Я не думаю, что это возможно так,

вы, возможно, придется использовать функцию, чтобы сделать это

function createObj(key, val){ 
    var obj = {}; 
    obj[key] = val; 
    return val; 
} 

for(var key in (assoc_array||createObj(other.dict.id, other.dict))){ 

} 

Демо: Fiddle

Смежные вопросы