Tag: 数组

如何以不区分大小写的方式从数组中删除元素?

我在起诉Ruby 2.3。 当我想通过值从数组中删除字符串元素时,我可以这样做 2.3.0 :005 > a.delete(“AB”) => “AB” 但是如何以不区分大小写的方式删除元素? 也就是说,我该怎么做 a.delete(“ab”) 表现得像 a.delete(“AB”) ?

HAML。变量的函数

我有大约30多个变量,其中包含一个包含多个字符串的数组。 1个变量= 1个数组。 我想知道是否可以创建一个包含所有变量名称的新变量,因此我可以遍历它们。 例如: 这些是单个数组: – @a = [“a”,”b”,”c”,”d”,”d”]; – @b = [“a”,”b”,”c”,”c”,”d”]; – @c = [“a”,”b”,”c”,”d”]; 现在我想在单独的变量中获取所有唯一且重复的字符串,如下所示: – @x_uniq = @a.uniq – @x_dup = @a.each_with_object(Hash.new(0)) { |e,h| h[e] += 1 }.select{ |k,v| v > 1 }.keys … – @x_uniq = @b.uniq – @x_dup = @b.each_with_object(Hash.new(0)) { |e,h| h[e] += 1 }.select{ |k,v| v […]

GOOGLE CHARTS使用工具折线图作为动态数组对象循环

数组对象看起来像这样我从ruby中按产品名称日期和成本获取数据并存储在一个变量中… 第一个数组是产品名称,第二个数组数据是日期和成本。 如何将x作为日期和y轴组合并显示为具有产品名称的成本 如何在图表中实现,我不知道如何在javascript中迭代循环数组数据并使用arraydatatable或数据表在x和y轴上显示如果我传递直接数据数组我的代码,它与highcharts工作正常: data2 = [{“name”:”productname”,”data”:[[“2018-03-01”,18.89034482758612],[“2018-03-02”,18.89268292682916],[“2018-03-05”,18.89324503311252],[“2018-03-07”,18.89268292682916],[“2018-03-10”,18.89377777777766],[“2018-03-11”,18.893525179856],[“2018-03-12”,18.89359999999988],[“2018-03-13”,18.89311475409824],[“2018-03-14”,18.89311475409824],[“2018-03-15”,18.89294117647046],[“2018-03-16”,18.89272727272716],[“2018-03-17”,18.89387173396662],[“2018-03-18”,18.89366292134818],[“2018-03-19”,18.8923456790122]]}] google.charts.load(‘current’, {‘packages’:[‘corechart’]}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable(data2 ); var options = { title: ‘Company Performance’, curveType: ‘function’, legend: { position: ‘bottom’ } }; var chart = new google.visualization.LineChart(document.getElementById(‘curve_chart’)); chart.draw(data, options); } google.charts.load(‘current’, {‘packages’:[‘corechart’]}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable(data2); // how to iterate […]

返回Ruby中类似的数组元素

说我有这样一个数组: arr = [‘footballs_jumba_10’, ‘footballs_jumba_11’, ‘footballs_jumba_12’, ‘footballs_jumba_14’, ‘alpha_romeo_11’, ‘alpha_romeo_12’, ‘alpha_juliet_10’, ‘alpha_juliet_11’] 如果我想返回重复项,(假设数组中的任何字符串都完全相同,我只会 return arr.detect{ |a| arr.count(a) > 1 } 但是,如果我只想获得数组中每个元素的前10个字符的副本,而不事先知道变化,该怎么办? 像这样: [‘footballs_’, ‘alpha_rome’, ‘alpha_juli’]

修改属于扩展类的对象的默认返回值

我对rails语法比较陌生。 我有一个LogString类 class LogString < Array 我用它做了以下几点 logs = LogString.new logs.push ‘this happened’ logs.push ‘that happened’ 哪个工作正常。 我希望能够只写 logs 返回什么是logs.join(’|’) 所以我在这里寻找类似log_string方法的语法 class LogString < Array def log_string self.join( ' | ' ) end end 但是当我简单地编写类实例名称时会自动调用log_string:logs 我怎样才能做到这一点?

在Ruby中查找数组的每个排列,包括子数组的排列

考虑一个数组: [4, 6, 9] 要求所有排列:(一,二和三位数) [[9], [6], [4], [9, 6], [9, 4], [6, 9], [6, 4], [4, 9], [4, 6], [9, 6, 4], [9, 4, 6], [6, 9, 4], [6, 4, 9], [4, 9, 6], [4, 6, 9]]

删除数组中的双引号,而不将数组转换为字符串

我有一个arrays x = [“1”,“2”,“3”,“:*”,“:+”,“4”,“5”,“: – ”,“:/”] 我正试图摆脱数组内部的双引号。 我知道我可以使用: x.to_s.gsub( ‘“’, ”) 它会输出一个字符串: “[1,2,3,:*,:+,4,5,: – ,:/]” 我想要的输出是一个数组而不是一个字符串: [1,2,3,:*,:+,4,5,: – ,:/] 有没有办法让我摆脱数组的每个元素的双引号但仍然将我的数组作为数组? 提前致谢!

Ruby:根据条件从深层嵌套的JSON结构中提取元素

想要从每个具有marketName == ‘Moneyline’市场中提取每个marketID 。 尝试了.map s, .reject s和/或.select s的一些组合,但由于复杂的结构使我感到困惑,所以无法缩小范围。 活动中有许多markets ,也有很多events 。 结构样本(为简洁起见,尝试编辑): {“currencyCode”=>”GBP”, “eventTypes”=>[ {“eventTypeId”=>6423, “eventNodes”=>[ {“eventId”=>28017227, “event”=> {“eventName”=>”Philadelphia @ Seattle” }, “marketNodes”=>[ {“marketId”=>”1.128274650”, “description”=> {“marketName”=>”Moneyline”} }, {“marketId”=>”1.128274625”, “description”=> {“marketName”=>”Winning Margin”} }}}]}, {“eventId”=>28018251, “event”=> {“eventName”=>”Arkansas @ Mississippi State” }, “marketNodes”=>[ {“marketId”=>”1.128299882”, “description”=> {“marketName”=>”Under/Over 60.5pts”} }, {“marketId”=>”1.128299881”, “description”=> {“marketName”=>”Moneyline”} }}}]}, {“eventId”=> etc…. 尝试各种各样的事情,例如, markets = […]

Ruby在数组中找到偏移量

我正在寻找一种方法,以更清洁的方式在Ruby中执行以下操作: class Array def find_index_with_offset(offset, &block) [offset..-1].find &block end end offset = array.find_index {|element| element.meets_some_criterion?} the_object_I_want = array.find_index_with_offset(offset+1) {|element| element.meets_another_criterion?} 所以我在Ruby数组中搜索某个对象的索引,然后我进行后续搜索,找到匹配其他条件的第一个对象,并在数组中有更高的索引。 有一个更好的方法吗? 我对清洁工的意思是什么:不涉及明确切割数组的东西。 当你这样做几次时,计算切片索引会很快变得混乱。 我想继续操作原始arrays。 它更容易理解,更不容易出错。 NB。 在我的实际代码中,我没有使用猴子修补数组,但我想提请注意我希望我复制数组/可枚举的现有function这一事实 编辑 根据MladenJablanović的评论, offset + 1固定位置; 重写错误 根据MladenJablanović的评论增加了对“清洁剂”的解释

用于显示长数组的Ruby样式

我正在使用rubocop来检查我的代码的样式约定是否符合最佳实践。 我有一系列颜色,想知道显示它们的最佳方式。 我读过这些行应该少于80个字符,所以我这样做了。 colors = [:light_red, :red, :pink, :orange, :light_yellow, :yellow, :light_green, :green, :light_blue, :blue, :white, :black] 我从rubocop收到以下exception消息 C: Align the elements of an array literal if they span more than one line 这是否意味着,我应该做这样的事情 colors = [:light_red, :red, :pink, :orange, :light_yellow, :yellow, :light_green, :green, :light_blue :blue, :white, :black] 这占用了大量的空间,我认为我的方式更有效率。 关于在ruby中显示多行数组的样式规则是什么?