Javascript 当输入obj时,转换为使用带有Coffeescript的_indexOf

Javascript 当输入obj时,转换为使用带有Coffeescript的_indexOf,javascript,coffeescript,Javascript,Coffeescript,这茶匙咖啡 _pickInConf = (sourceConf,propsToPick...) -> newConfWithPickedProperties = {} newConfWithPickedProperties[key] = sourceConf[key] for key in Array::.concat.apply Array::,propsToPick when key in sourceConf newConfWithPick

这茶匙咖啡

    _pickInConf = (sourceConf,propsToPick...) ->
      newConfWithPickedProperties = {}
      newConfWithPickedProperties[key] = sourceConf[key] for key in Array::.concat.apply Array::,propsToPick when key in sourceConf
      newConfWithPickedProperties
。。。被编译成:

_pickInConf = function() {
  var key, newConfWithPickedProperties, propsToPick, sourceConf, _i, _len, _ref;
  sourceConf = arguments[0], propsToPick = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
  newConfWithPickedProperties = {};
  _ref = Array.prototype.concat.apply(Array.prototype, propsToPick);
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    key = _ref[_i];
    if (__indexOf.call(sourceConf, key) >= 0) {
      newConfWithPickedProperties[key] = sourceConf[key];
    }
  }
  return newConfWithPickedProperties;
};
进入:

if (key in sourceConf) {
。。。这就是我想用JS编写的代码

有没有办法强制Coffescript输出这种JS?或者让它明白sourceConf是一个对象,而不是一个数组


提前感谢您的回答

您希望
of
而不是
in
迭代对象的键:(在本节末尾附近)

要进一步说明这一点:

for a in items when a of obj
  stuff
编译成

var a, _i, _len;

for (_i = 0, _len = items.length; _i < _len; _i++) {
  a = items[_i];
  if (a in obj) {
    stuff;

  }
}
var a,_i,_len;
对于(_i=0,_len=items.length;_i<_len;_i++){
a=项目[_i];
if(obj中的a){
东西
}
}

这是使用obj中的
a
来检查是否出现键:

您希望整个块编译成什么?谢谢Jim!我刚刚用js2coffe解决了这个问题!
for a in items when a of obj
  stuff
var a, _i, _len;

for (_i = 0, _len = items.length; _i < _len; _i++) {
  a = items[_i];
  if (a in obj) {
    stuff;

  }
}