将键值数组映射到值数组

1 coffeescript

我在Coffeescript中有一系列值,这样:

arr = ['key1': 1, 'key2': 2, 'key3': 3]
Run Code Online (Sandbox Code Playgroud)

我想将此数组转换为只是值的数组.基本上,

arr.map (iter) -> iter.value  # arr => [1,2,3]

=> []
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种这种排列,但我只是不断回到一个空阵列.有小费吗?

San*_*dro 12

这是一个CoffeeScript问题,示例代码是有效的CoffeeScript

arr = ['key1': 1, 'key2': 2, 'key3': 3]

转换为以下JavaScript:

var arr;
arr = [
  {
    'key1': 1,
    'key2': 2,
    'key3': 3
  }
];
Run Code Online (Sandbox Code Playgroud)

首先,你必须意识到这一点

obj = 
  key1: 1 
  key2: 2
  key3: 3
Run Code Online (Sandbox Code Playgroud)

很可能是你想要的.

然后,您可以使用以下代码创建仅包含对象值的数组.

arr = null
arr.push val for key, val of obj
Run Code Online (Sandbox Code Playgroud)

更新

这个来自'mu太短'的单线程甚至更好.

arr = (val for key, val of obj)
Run Code Online (Sandbox Code Playgroud)

  • 感谢您阅读标签.我可能会使用`values =(v代表自己的k,v代表obj)`或`values =(v代表k,v代表obj)`. (4认同)