現在、CoffeeScript でこれを行っています。
keys = (key for key of data)
values = (v for k,v of data)
はオブジェクトdata
です (配列ではありません)。キーがプロパティ名の配列で、値が値の配列である 2 つの配列を作成しようとしています。
これは次のようにコンパイルされます。
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;
})();
これらの 2 つのループを 1 つのループに結合できるようにしたいのですが、リスト内包表記を使用してこれを行う方法 (または可能かどうか) がわかりません。
私が行った別の試みは、2 つの配列を作成し、自分で項目をプッシュすることでした。
keys = []
values = []
keys.push k for k,v of data
これにより、キーを問題なくプッシュできますが、プッシュ先の構文もわかりませんvalues
。
1 つのリスト内包表記から 2 つの配列を作成するにはどうすればよいですか? 自分でループを書いたほうがいいですか?