如何将对象的VALUES连接/展平为数组?

时间:2013-06-17 09:51:08

标签: arrays coffeescript underscore.js concatenation key-value

我有以下对象:

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)

两种方法都返回二维数组,数组作为第一维,值作为第二维

有没有办法使用单线程获得所需的结果?

3 个答案:

答案 0 :(得分:1)

使用concat()功能:

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

答案 1 :(得分:1)

是的,你可以:

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

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

是相同的。

(val for key, val of languages)这里是所有语言数组的数组,可以相互连接。

...运算符只是java-script apply函数的快捷方式。

答案 2 :(得分:0)

我不确定为什么它必须在一行......但是你在2 LOC

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