小编Pet*_*ter的帖子

javascript中数组交集的最简单代码

在javascript中实现数组交叉的最简单,无库的代码是什么?我想写

intersection([1,2,3], [2,3,4,5])
Run Code Online (Sandbox Code Playgroud)

得到

[2, 3]
Run Code Online (Sandbox Code Playgroud)

javascript intersection data-structures

529
推荐指数
16
解决办法
33万
查看次数

Ruby:从实例调用类方法

在Ruby中,如何从该类的实例中调用类方法?说我有

class Truck
  def self.default_make
    # Class method.
    "mac"
  end

  def initialize
    # Instance method.
    Truck.default_make  # gets the default via the class's method.
    # But: I wish to avoid mentioning Truck. Seems I'm repeating myself.
  end
end
Run Code Online (Sandbox Code Playgroud)

该行Truck.default_make检索默认值.但有没有提到这样说的方法Truck呢?好像应该有.

ruby class-method

331
推荐指数
6
解决办法
17万
查看次数

Ruby数组的最后一个元素

假设我有一个Ruby数组

a = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

如果我想要除了第一项以外的所有项目,我可以写a.drop(1),这很棒.但是,如果我想要除了最后一项之外的所有项目,我只能想到这一点

a[0..-2]   # or
a[0...-1]
Run Code Online (Sandbox Code Playgroud)

但这些都不像使用那么干净drop.我缺少任何其他内置方式?

ruby

130
推荐指数
10
解决办法
9万
查看次数

Ruby:扩展自我

在Ruby中,我理解了它的基本思想extend.但是,这段代码中发生了什么?具体来说,做extend什么?它只是将实例方法转换为类方法的便捷方式吗?你为什么要这样做,而不是从一开始就指定类方法?

module Rake
  include Test::Unit::Assertions

  def run_tests # etc.
  end

  # what does the next line do?
  extend self
end
Run Code Online (Sandbox Code Playgroud)

ruby

113
推荐指数
4
解决办法
3万
查看次数

从Python迭代器获取最后一项的最简洁方法

在Python 2.6中从迭代器获取最后一项的最佳方法是什么?例如,说

my_iter = iter(range(5))
Run Code Online (Sandbox Code Playgroud)

什么是最短的代码/最干净的方式4来自my_iter

我可以做到这一点,但它看起来效率不高:

[x for x in my_iter][-1]
Run Code Online (Sandbox Code Playgroud)

python iterator python-2.7 python-3.x

102
推荐指数
8
解决办法
4万
查看次数

如何打开相对于主目录的文件

Errno::ENOENT: No such file or directory即使文件存在,以下内容也会失败:

open('~/some_file')
Run Code Online (Sandbox Code Playgroud)

但是,我可以这样做:

open(File.expand_path('~/some_file'))
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 为什么不open将波形符处理为指向主目录?
  2. 有比这更光滑的方式File.expand_path吗?

ruby

88
推荐指数
3
解决办法
4万
查看次数

清除从javascript数组中删除元素的方法(使用jQuery,coffeescript)

关于这一点有很多问题,尤其是: 数组的jQuery版本包含,splice方法的解决方案等等.然而,它们看起来既复杂又令人讨厌.

利用javascript,jQuery和coffeescript的强大功能,从javascript数组中删除元素的最简洁方法是什么?我们事先并不知道该指数.在代码中:

a = [4,8,2,3]
a.remove(8)     # a is now [4,2,3]
Run Code Online (Sandbox Code Playgroud)

如果没有一个好的内置方法,那么扩展javascript数组以支持这种方法的干净方法是什么?如果它有帮助,我真的使用数组作为集合.解决方案理想情况下可以在coffeescript中使用jQuery支持.此外,我不关心速度,而是优先考虑清晰,简单的代码.

javascript jquery coffeescript

59
推荐指数
4
解决办法
6万
查看次数

vim中有多个自动命令

我的一些部分.vimrc看起来像这样:

autocmd Filetype ruby setlocal ts=2
autocmd Filetype ruby setlocal sts=2
autocmd Filetype ruby setlocal sw=2
Run Code Online (Sandbox Code Playgroud)

现在看来我可以把它们转换成这个:

autocmd Filetype ruby setlocal ts=2 sts=2 sw=2
Run Code Online (Sandbox Code Playgroud)

但这是我的问题:有没有像这样的结构的vim方式?

<something mentioning Filetype ruby>
  setlocal ts=2
  setlocal sts=2
  ...
<end>
Run Code Online (Sandbox Code Playgroud)

也就是说,autocmd Filetype某种程度上可以用来解决一组行动?(这是一个简单的例子,我真的要求更复杂的情况.)

vim

56
推荐指数
3
解决办法
2万
查看次数

在rails中简单的respond_with避免了PUT的204

我想要PUT铁路,避免得到一个204.我正在使用这种模式:

class SomeController < ApplicationController
  respond_to :json

  def update
    # ...
    respond_with(some_object)
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,当我做put更新时,我会204回来.我意识到这是完全有效的,但我明确地希望内容回来.我可以在某种程度上覆盖它,如下所示:

def update
  respond_with(some_object) do |format|
    format.json{render json: some_object}
  end
end
Run Code Online (Sandbox Code Playgroud)

但这对于铁路来说似乎有点过分了.有没有更惯用的方法来避免204并要求发回全部内容?这是Rails 3.2.

总结:我想要最大限度地习惯于避免使用的轨道204.

ruby-on-rails

50
推荐指数
4
解决办法
1万
查看次数

Rails 3.1资产预编译 - 包括所有javascript文件

我希望Rails 3.1能够获取更多我的资产以进行预编译.特别是,用于编译文件的默认匹配器不会添加.js文件vendor/assets/javascripts.我可以将资源添加到config.assets.precompile列表中,但这看起来很烦人.我不想在application.js清单中引用它们,因为我不希望它们包含在所有页面中.

总之,任何方式请求获取所有.js文件vendor/assets/javascripts得到预编译rake assets:precompile,但没有将它们包含在所有页面中?

ruby-on-rails-3.1 asset-pipeline

48
推荐指数
1
解决办法
3万
查看次数