2016-03-10 2 views
0

У меня есть массив объектов:объектов UnWrap в массиве

var Props = [booleanPoint, buttonPoint, checkboxPoint, datePoint, dialPoint, gaugePoint, 
    groupboxPoint, htmlPoint, imagePoint, livetextPoint, livetrendsPoint, permissionsPoint, 
    rangePoint, selectPoint, spectrumPoint]; 

Консольные журнал показывает: enter image description here

Отредактирован:

Я хочу, чтобы извлечь свойства внутри каждый объекта. Как мне это сделать?

Чтобы быть ясно, я просто хочу, первое свойство в массиве, так что я могу сделать Props.booleanPoint, Props.buttonPoint и т.д.

+0

Так что вы хотите добавить любой объект, который находится в каждом внешнем объекте, принадлежащий массив в новый массив? Если это так, используйте цикл 'for' для итерации массива и цикла' for-in' внутри цикла 'for' для итерации каждого объекта, который затем вы можете нажать на новый массив. –

+0

Я не понимаю проблемы, с которой вы сталкиваетесь. Реквизит [0] дает первый объект в массиве, реквизит [1] дает второй и т. Д. Пожалуйста, покажите код, который вы используете, с массивом Props, а не другим кодом для объекта, который вы не используете. – nnnnnn

+0

@nnnnnn Привет, Props [0] просто возвращает объект с вложенным свойством «booleanProps». Я хочу «booleanProps» напрямую. – chefcurry7

ответ

3

Вы вопрос не очень понятно, но я предполагаю, что вы пытаетесь извлеките первое (и единственное) свойство из каждого объекта в списке, имя которого вы не знаете.

Если да, то подумайте:

extracted = Props.map(function(obj) { 
    for(var p in obj) 
     return obj[p]; 
}); 

Если вы хотите, чтобы объединить все свойства в один большой объект, попробуйте это:

allProps = Object.assign.apply(null, Props) 
+0

спасибо за этот ответ. Однако это не совсем то, что я ищу. Я ищу способ сделать Props.booleanPoint, Props.buttonPoint и т. Д. Метод, который вы полностью избавляетесь от имен свойств, чего я не хочу. – chefcurry7

+0

@ chefcurry7: см. Обновление – georg

+0

спасибо за это !! – chefcurry7

0

Я не знаю точно, какой результат вы после, но лучшим решением, вероятно, является либо forEach, либо map.

var properties = {}; 
Props.forEach(function(object) { 
    // update properties somehow based on object 
}); 

или

var properties = Props.map(function(object) { 
    return [some property of object]; 
}); 

Первый раз запускает код на каждой записи в массиве; второй возвращает новый массив с результатами этого кода.

В противном случае, классический цикл тоже работает:

var properties = {}; 
for (var i = 0; i < Props.length; i++ { 
    // update properties somehow based on Props[i] 
} 
Смежные вопросы