2016-08-29 3 views
1

I имеет следующую структуру:Создать один большой массив из свойств объекта с помощью Undescore

Object = { 
1:[..], 
2:[..], 
3:[..], 
4:[..] 
} 

Где каждое свойство является только массивом строк.

Я хотел бы знать, как я могу создать один большой массив из всех уникальных элементов, используя только подчеркивание.

Спасибо!

+0

Почему вы не можете использовать чистые решения JS? –

+0

@RajaprabhuAravindasamy, так как я уже использую Underscore в своем проекте, почему бы не использовать его полностью. – uksz

+0

- это элементы в массивах уникальные? если нет, какова политика выбора одного вместо другого? – pietro909

ответ

3

Предполагая, что этот объект:

var o = { 
    1:['3','4'], 
    2:['5','6'], 
    3:['7','8'], 
    4:['9','10'] 
} 

Вы можете сгладить все ценности объекта:

var arr = _.flatten(_.values(o)); 
// [ '3', '4', '5', '6', '7', '8', '9', '10' ] 

Получение массива.

EDIT: Я использовал номера, где вопрос о строках. Он предназначен для любых данных.

Чтобы удалить дубликаты, вы можете использовать _.uniq, который работает для строк и цифр из коробки.

+1

Хороший ответ. Это было бы хорошим местом для использования функции цепочки подчеркивания, чтобы она выглядела примерно так: '_.chain (o) .values ​​(). Flatten(). Uniq(). Value();' –

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