现在,我在 CoffeeScript 中这样做:
keys = (key for key of data)
values = (v for k,v of data)
data
对象(不是数组)在哪里。我正在尝试创建两个数组,其中键是属性名称的数组,值是值的数组。
这编译为:
var keys, values;
keys = (function() {
var _results;
_results = [];
for (key in data) {
_results.push(key);
}
return _results;
})();
values = (function() {
var _results;
_results = [];
for (k in data) {
v = data[k];
_results.push(v);
}
return _results;
})();
我希望能够将这两个循环组合成一个循环,并且无法弄清楚如何(或是否可能)使用列表理解来做到这一点。
我所做的另一个尝试是创建两个数组并自己将项目推送给它们:
keys = []
values = []
keys.push k for k,v of data
这让我可以很好地按下键,但我也无法弄清楚要推送的语法values
。
如何从单个列表理解创建两个数组?我最好自己编写循环吗?