From: jonathan@... Date: 2019-10-06T16:41:02+00:00 Subject: [ruby-core:95247] [Ruby master Feature#16146] Array .difference allow custom comparison Issue #16146 has been updated by jonathanhefner (Jonathan Hefner). Dan0042 (Daniel DeLorme) wrote: > What you're asking for is a O(n�) operation. I'm not sure it's a good idea to make that so easy and transparent as a core method. Although the given example specified a two-argument block, the original post references `uniq`, which accepts a one-argument block. Using a one-argument block can result in an O(n) implementation. Here is a different example: ```ruby Dependency = Struct.new(:name, :version) deps1 = [Dependency.new("foo", "1.1"), Dependency.new("bar", "2.0"), Dependency.new("qux", "1.0")] deps2 = [Dependency.new("foo", "1.0"), Dependency.new("bar", "1.0")] deps1.difference(deps2, &:name) # == [Dependency.new("qux", "1.0")] deps1.difference(deps2){|dep| [dep.name, dep.version[/^\d+/]] } # == [Dependency.new("bar", "2.0"), Dependency.new("qux", "1.0")] ``` ---------------------------------------- Feature #16146: Array .difference allow custom comparison https://bugs.ruby-lang.org/issues/16146#change-81922 * Author: ngomez (Nancy Gomez) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- Hello! I wanted to know if there's any plan to implement the ability to define comparison between individual items in arrays. Here is where I originally asked the question on Stack Overflow: https://stackoverflow.com/questions/57316775/is-there-any-way-to-specify-how-to-compare-of-array-of-objects-for-difference-f But specifically, I noticed nearly all the existing Array functions allow us to define ways for comparison, such as #uniq but #difference does not :( This is quite unfortunate but I'm hoping it's just because this function was introduced in 2.6.0, and hopefully this feature can be implemented? Thanks for any and all info :) -- https://bugs.ruby-lang.org/ Unsubscribe: