Ruby 中的 Array.prototype.splice

2023-11-21

有朋友问我用Ruby最好、最高效的方式来达到JavaScript的效果spliceRuby 中的方法。 这意味着不对数组本身或副本进行迭代。

“从索引开始处开始,删除长度项并(可选)插入元素。最后在数组中返回删除的项。” 这是误导性的,请参阅下面的 JS 示例。

http://www.mennovanslooten.nl/blog/post/41

没有的快速破解optional代换:

from_index     = 2
for_elements   = 2
sostitute_with = :test
initial_array  = [:a, :c, :h, :g, :t, :m]
# expected result: [:a, :c, :test, :t, :m]
initial_array[0..from_index-1] + [sostitute_with] + initial_array[from_index + for_elements..-1]

你的是啥呢? 一根线比较好。

Update:

// JavaScript
var a = ['a', 'c', 'h', 'g', 't', 'm'];
var b = a.splice(2, 2, 'test'); 
> b is now ["h", "g"]
> a is now ["a", "c", "test", "t", "m"]

我需要结果“a”数组,而不是“b”。


Use Array#[]=.

a = [1, 2, 3, 4, 5, 6]
a[2..4] = [:foo, :bar, :baz, :wibble]
a # => [1, 2, :foo, :bar, :baz, :wibble, 6]

# It also supports start/length instead of a range:
a[0, 3] = [:a, :b]
a # => [:a, :b, :bar, :baz, :wibble, 6]

至于返回被删除的元素,[]=不这样做...您可以编写自己的辅助方法来执行此操作:

class Array
  def splice(start, len, *replace)
    ret = self[start, len]
    self[start, len] = replace
    ret
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby 中的 Array.prototype.splice 的相关文章

  • 浏览器视口大小(以设备像素为单位)

    Goal 我希望 Flash 能够获得有关浏览器视口宽度和高度 以设备像素为单位 的准确信息初始化 调整大小或浏览器缩放事件时 规格 我需要将 flash 嵌入到在 chrome safari firefox 等中运行的 html 页面中
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • 如何使用 Playwright 使用选择器查找框架 (iframe)

    我有一个小问题 无法找到使用 Microsoft Playwright 框架的答案 根据您可以使用以下代码获取 iframe const frame page frame frame login 但是如何使用选择器来查找 iframe 并与
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 回滚后是否应该删除迁移

    我对 ruby 和 Rails 相当陌生 刚刚开始了解迁移 我的问题是回滚后删除迁移的最佳实践或正确时间是什么 到目前为止 我读到的内容是回滚后是否删除迁移的观点问题 但是在团队中工作时删除迁移是否有任何重大影响 以及保留迁移文件相对于删除
  • JavaScript eval("{}") 返回行为?

    根据ECMA 262 规范 http www ecma international org publications files ECMA ST Ecma 262 pdf 以下语句返回1 eval 1 eval 1 eval 1 var a
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • Rails 中用户指定的动态模型字段

    有谁知道 gem 或允许用户向模型添加字段的良好实现 Ex 用户希望向联系人模型添加 内部注释 字段 在界面中 他们只需选择 新字段 gt 类型 文本 Thanks 抱歉 我不知道有任何插件可以做到这一点 但我有一个实施建议 这个想法是添加
  • 如何强制焦点编辑文本

    我阅读了有关如何设置要聚焦的对象的问题 但我似乎找不到我想要做的事情的答案 使用 On Focus Listener 我完成了以下操作 Ehour setOnFocusChangeListener new OnFocusChangeList
  • QML - 启动时主窗口位置(屏幕中心)

    我可以如何执行以下操作 我想在开始时在中央屏幕上显示我的主窗口 如果使用 QtQuick 可以这样做 import QtQuick 2 2 import QtQuick Controls 1 1 import QtQuick Window
  • 在Python中创建“反向”列表的最佳方法? [复制]

    这个问题在这里已经有答案了 在Python中 创建一个新列表的最佳方法是什么 该列表的项目与其他列表的项目相同 但顺序相反 我不想修改现有列表 这是我想到的一种解决方案 new list list reversed old list 复制也
  • 生成随机SQL Server 2008时间测试数据

    我正在尝试生成一个大型数据集 其中包括 SQL Server 2008 中的时间数据类型 我的表中已经有一些非时间数据 所以我想将整个过程保留在 T SQL 中并使用插入到 select 从一个表中获取部分数据 并将其与一些生成的数据 包括
  • 在 Android 启动器中托管小部件

    我正在为 android 制作一个启动器 但我被困在小部件部分 我在互联网上搜索了大约一个半小时 试图弄清楚如何在我的应用程序中托管小部件 但没有运气 我已经浏览了一些库存启动器和 ADW 启动器代码 但两者都只有数英里的代码 这是我第一次
  • 我无法安装回形针

    我是 Rails 新手 我需要安装 Peperclip https github com thoughtbot paperclip 但我不能 我已经查看了我能找到的所有教程 但我无法找到错误在哪里 我安装了 ImageMagick 并遵循
  • 增加字体真棒图标

    我在使用一些字体很棒的图标时遇到了一些麻烦 我正在尝试增加其中一些的大小 但由于某种原因 我似乎没有做任何事情 这是我的html div class span5 bookBuild div class well well small h4
  • 如何在 Javascript 中按 15 分钟间隔对 json 集合进行分组

    假设我们在 Javascript 中有一个这样的集合 date Fri 02 May 2014 19 05 00 GMT value abc date Fri 02 May 2014 23 43 00 GMT value jkl date
  • 显示自 master 的原始分支点以来 git 分支中的所有提交

    我正在寻找一种方法来查看自分支点 并包括它 以来活动分支上的所有提交 并希望自主分支以来 例如这样的情况 A B C D master E F branch A 我想要获得提交 F E 和 B 而 F 是 HEAD And for A B
  • Google Apps 脚本电子表格评论自动化

    今天我有一个关于 Google Apps 脚本的问题 特别是电子表格 我已经看过文档了here 是的 有关a的文档Sheet在电子表格中 但我一直无法找到我要找的东西 这是西奇 1 当在 Google 电子表格中编辑单元格时 我的函数会设置
  • 安装和运行 rcpp 时出错

    我对 R 还很陌生 所以对一个愚蠢的问题表示歉意 我正在尝试让 rcpp 运行 但我陷入了 R 的无限循环 要求我重新安装 RTools 我大致遵循了以下代码这篇博文 虽然第一次休息时我手动安装了所有东西 随后我又重新安装了几次 我正在运行
  • Java:负数右移

    我对负数的右移操作感到非常困惑 这是代码 int n 15 System out println Integer toBinaryString n int mask n gt gt 31 System out println Integer
  • 通过特定位置和经度获取屏幕坐标(android)

    我有一个增强现实的应用程序 其中存储了地铁 加油站 名胜古迹等信息以及相应的纬度和经度 现在 根据设备的方向 我将在设备的相机视图中显示每个站点的标记 类似于 Layar 和 Wikitude 找了三天没有间断 也没有找到人解释如何解决这个
  • 为什么 kinect 颜色和深度无法正确对齐?

    我已经研究这个问题很长一段时间了 并且我的创造力已经结束 所以希望其他人可以帮助我指明正确的方向 我一直在使用 Kinect 并尝试将数据捕获到 MATLAB 幸运的是 有很多方法可以做到这一点 我目前正在使用http www mathwo
  • 所有系统引用都缺少 Visual Studio 2013 NuGet Async

    我在 Visual Studio 2013 中设置了一个解决方案 团队项目 并且有一段时间为 NET Framework 4 0 安装了一个可用的 NuGet Microsoft Bcl 异步包 今天 当打开项目时 无法找到所有默认的 NE
  • 在@RequestParam中绑定列表

    我以这种方式从表单发送一些参数 myparam 0 myValue1 myparam 1 myValue2 myparam 2 myValue3 otherParam otherValue anotherParam anotherValue
  • 如何在选中时覆盖 Material UI 开关组件的样式?

    我想控制开关组件的颜色 无论是在选中还是未选中时 默认情况下它是红色的 我希望当开关状态为 球形旋钮 时为黄色checked true我希望它是灰色的 什么时候checked false I must通过使用来实现样式createMuiTh
  • 如何更改 Material-UI 滑块颜色

    我想更改 Material UI Slider 组件颜色 我尝试更改CSS样式但它不起作用 然后我尝试了中给出的解决方案this问题并应用了此代码 但它不起作用 获取Mui主题 const muiTheme getMuiTheme slid
  • Ruby 中的 Array.prototype.splice

    有朋友问我用Ruby最好 最高效的方式来达到JavaScript的效果spliceRuby 中的方法 这意味着不对数组本身或副本进行迭代 从索引开始处开始 删除长度项并 可选 插入元素 最后在数组中返回删除的项 这是误导性的 请参阅下面的