0

У меня есть следующий объект:Как объединить/сгладить VALUES объекта в массив?

languages: 
    english: [ 1, 2, 3 ] 
    german: [ 4, 5, 6 ] 

Моя цель состоит в том, чтобы получить массив всех значений languages так что результат выглядит [ 1, 2, 3, 4, 5, 6 ].

Это то, что я пробовал:

(word for word in value for key, value of languages) 

или

(word for word in languages[lang] for lang in Object.keys languages) 

Оба метода возвращает двумерный массив массивов в качестве первого измерения и значение в качестве второго измерения

Is есть способ получить желаемый результат с помощью однострочного?

+2

http://stackoverflow.com/questions/4631525/concatenating-an-array-of-arrays-in-coffeescript –

ответ

1

Используйте concat() функцию:

[1, 2, 3].concat [4, 5, 6] 
0

Я не знаю, почему она должна быть в одной строке ... но здесь у вас в 2 LOC

result = [] 
result.splice(result.length, 0, languages[key]...) for key of languages 
1

Да, вы может:

[].concat (val for key, val of languages)... 

или

Array::concat (val for key, val of languages)... 

которые являются одинаковыми.

(val for key, val of languages) вот массив массивов всех языков, чтобы объединиться друг с другом.

... Оператор является просто ярлыком для java-scriptapply Функция.

+0

Опасайтесь, не заметили, что на этот вопрос уже был дан ответ. –

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