JS:替换对象中与模式匹配的所有字符串值?

2024-06-28

我正在寻找一种有效的方法来替换对象内的值(如果它们与特定模式匹配)。

var shapes = {
  square: {
    attr: {
      stroke: '###',
      'stroke-width': '%%%'
    }
  },
  circle: {
    attr: {
      fill: '###',
      'stroke-width': '%%%'
    }
  }
}

例如,我希望能够将所有“###”图案替换为特定形状的颜色:

var square = replace(shapes.square, {
  '###': '#333',
  '%%%': 23
});

var circle = replace(shapes.circle, {
  '###': '#111',
  '%%%': 5
});

这将使我能够快速设置各种对象的描边和/或填充值。

有没有办法干净地做到这一点?也许使用 Lodash 或正则表达式?


纯 JS,无需库:

var shapes = {
  square: {
    attr: {
      stroke: '###',
      'stroke-width': '%%%'
    }
  },
  circle: {
    attr: {
      fill: '###',
      'stroke-width': '%%%'
    }
  }
}
shapes = JSON.parse(
  JSON.stringify(shapes).replace(/###/g,"red").replace(/%%%/g,"23")
)
console.log(shapes);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS:替换对象中与模式匹配的所有字符串值? 的相关文章

  • jQuery 会在过滤选择器中的其他参数之前搜索 ID 吗?

    这个问题与性能有关 如果我使用如下选择器 myID a Does this find myID and filter by a 或者我应该这样写声明 myID find a 我不确定 jQuery 是否足够聪明 可以首先使用 ID 执行此语
  • 提供文件数据时触发“drop”事件

    Question 我如何在提供文件时触发drop场的事件 其中我在加载时无权访问 Details 有一个页面 其中有一个字段 上面附加了drop掉落时处理图像的侦听器 我希望能够通过以下方式使用这个过程pasting一个图像 我知道如何从粘
  • 使用 Passport 进行 Node.js 身份验证:如果字段丢失,如何闪烁消息?

    我正在使用 Passport js 如果我的表单字段为空 我想显示一条消息 但我不知道该怎么做 因为如果缺少护照 则不会触发策略回调 我真的希望这个用例更加清晰 而且我不想修改护照 我感觉有办法 但不知道在哪里 我尝试使用路线的回调 app
  • 请使用同一按钮播放和暂停音频

    我有这段代码并且只是播放 但我想使用相同的按钮 图像 播放和暂停 并且我不知道我需要添加什么 我需要做什么 请帮帮我
  • 切换 Ag-Grid 中的浮动过滤器?

    我试图通过开关或按钮单击来确定浮动过滤器的显示 看起来很简单 我应该能够在 true 和 false 之间切换 将该值提供给网格选项中的浮动过滤器 然后刷新标题 对吗 不幸的是 网格似乎总是落后一步 当我第一次点击时 什么也没有发生 当我将
  • 将 Babel 与单个输出文件和 ES6 模块一起使用

    这是我的 gulp 任务 将 ES6 代码编译成单个 ES5 文件 我使用类和模块 import export 在 ES6 中 gulp src paths scripts pipe sourcemaps init pipe babel p
  • JSON 解析错误 - JSON 中位置 1 处出现意外标记 o

    我需要获取一个 JSON 对象并记录标题控制台以实现自动完成功能 我的 json 的示例如下 title Example 1 url http www example1 com title Example 2 url http www ex
  • 如何在 Electron 中使窗口大小响应。 (打开应用程序时)

    我最近开始在 Electron 上制作一个应用程序 我想让窗口具有响应能力 例如 如果我在不同的屏幕上打开应用程序 它应该根据屏幕尺寸以全尺寸打开 我的代码 app on ready gt const htmlPath path join
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • 未处理的 Promise 拒绝:push.on 不是函数

    我正在使用离子2 我得到这个打字稿error当尝试设置推送通知时 我从教程中复制了此示例代码 因此预计它可以工作 我一定有什么问题 任何想法请 Unhandled Promise rejection push on is not a fun
  • Backbone.View:delegateEvents 未将事件重新绑定到子视图

    我已将这个问题分解为尽可能小的示例 即 它只是为了演示问题 不一定代表现实世界的场景 假设我有一个父视图 此处为 MainView 其中包含一个子视图 此处为 SubView 如果在任何时候我需要重新渲染父视图 从而重新渲染子视图 我就会丢
  • 将变量从一个 jsp 发送到另一个 jsp

    我有一个 JSP 文件jsp 1 jsp和另一个 JSP 文件jsp 2 jsp 我已经包括了jsp 2 jsp in jsp 1 jsp using 现在我需要某个元素上的单击事件 在该事件中 我想将字符串变量传输到包含的 jsp 中 假
  • 使用预先存在的数据库创建 PhoneGap iOS 应用程序

    我最近开始开发一个使用 PhoneGap 版本 2 8 0 作为药物查找器的应用程序 过去 我创建了该工具的 Web 版本 它使用 jQuery Mobile 和 PHP 来访问远程 SQL 数据库 PhoneGap 似乎是一个很有吸引力的
  • 如何使用 $.ajax 发送 JSON 而不是查询字符串?

    有人可以简单地解释一下如何让 jQuery 发送实际的 JSON 而不是查询字符串吗 ajax url url dataType json I was pretty sure this would do the trick data dat
  • 使用 _.extend() 进行 JavaScript 继承

    有什么区别 Employee prototype Object create Person prototype and extend Employee prototype Person prototype 两者都给出相似的结果 输出 但下划
  • Firefox 本地主机上的 Twilio 屏幕共享?

    目前 Firefox 中本地主机上的屏幕共享会引发以下错误 The request is not allowed by the user agent or the platform in the current context 这是我的代码
  • 删除移动设备上的 adsense

    我正在研究响应式设计 但在使用 adsense 时遇到了问题 我有一个广告应该显示在桌面设计上 但不能显示在移动设计上 因此 只有在桌面上查看网站时 才应将广告代码放置在 html 中 css 可以使用 display none 但这违反了
  • 将 html

    我有一些服务器端代码当前支持 http 字节范围请求 没有任何问题 但是 我希望能够在将转码后的块发送到客户端之前使用 ffmpeg 即时转码视频文件 位于磁盘上 但 ffmpeg 要求我在获取字节时给它一个寻道时间范围来自客户 给定客户端
  • 什么是标志变量?

    最近我遇到了标志变量 但我不知道它们的作用 我不太确定何时使用标志变量以及如何使用它 我用 Google 搜索了它 但没有任何与我的上下文 JavaScript 相关的具体示例 标记变量的定义和使用 http www javascriptk
  • JQuery 循环遍历动态元素并获取数据值

    我正在尝试使用可折叠面板来完成我的要求 sport on click function var thisId this attr id var thisChildren this sportlist thisChildren each fu

随机推荐

  • 如何使用通用约束类型属性实现 Swift 协议?

    我想要一个看起来像这样的协议 protocol ReturnType var returnType ImmutableMappable Type get 实现协议的枚举部分 extension ShimEndPoint ReturnType
  • 椭圆曲线加密的 .NET 实现(库)

    您能否建议在 NET 平台上使用椭圆曲线加密技术的任何实现 另外 如果您使用过它们 您能告诉我应该使用的推荐曲线吗 EDIT 正如 FatCat 提到的 它的实现在 NET Framework 3 5 中可用 但仅在 Windows Vis
  • Vue-konva 遇到错误:必须使用 import 加载 ES 模块

    我正在努力实施Vue konva按照以下步骤进入我的应用程序文档在这里 https www npmjs com package vue konva 但我遇到了以下错误 Must use import to load ES Module Us
  • html5标签“Contenteditable”的css选择器[重复]

    这个问题在这里已经有答案了 如何使用 contenteditable true 的 css 选择器 div div Use a CSS 属性选择器 https developer mozilla org en docs Web CSS At
  • 为什么在使用 PowerMockRunner 运行时无法使用 @InjectMocks 字段匹配?

    我遇到了一个问题 其中字段注入与 Mockito 匹配 Mock注释为 InjectMocks在有 2 个的情况下不起作用 Mock相同类型的 我用过 Mock name name of var 语法也是如此 但仍然失败 这是被测试的类 i
  • 在行内颤动展开列

    I am trying to create this design My code Row mainAxisSize MainAxisSize max crossAxisAlignment CrossAxisAlignment start
  • 以编程方式设置android布局参数

    我是安卓新手 我想知道如何从程序中为任何布局 如绝对布局 设置布局 x 和布局 y 宽度和高度的参数或属性 对于按钮你可以尝试这样 RelativeLayout Layoutparams params RelativeLayout Layo
  • Symfony 3 - 你请求了一个不存在的服务,这让我发疯

    所以 这不是我第一次创建服务 但我只是无法解决错误 您请求了一个不存在的服务 global settings 我为确保服务正确设置而采取的步骤 My AppBundleExtension php namespace AppBundle De
  • 当 R 中出现“warnings()”时中断循环

    我有一个问题 我正在运行一个循环来处理多个文件 我的矩阵非常巨大 因此如果我不小心 我经常会耗尽内存 如果创建任何警告 是否有办法打破循环 它只是继续运行循环并报告它在很久以后失败 烦人 聪明的 stackoverflow ers 有什么想
  • iOS 7 UIBarButtonItem 字体在点击时发生变化

    我正在尝试改变我的UIBarButtonItem字体 ViewController 加载时看起来不错 但是 如果我点击栏按钮 或者向右滑动 就像移动到上一个 ViewController 但然后拉回到当前的 ViewController 字
  • 如何将 Console.Readkey 转换为 int c#

    我正在尝试将用户输入键转换为 int 用户将输入 1 到 6 之间的数字 这是我到目前为止在方法中所拥有的 它不起作用 但抛出格式异常未得到处理 var UserInput Console ReadKey var Bowl int Pars
  • Python:脚本的目录

    我一直在寻找解决方案 但尚未找到我需要的 脚本路径 dir to script script py or C dir script py 异常结果 script py output dir to script cd script scrip
  • C 标准是否规定平台不得定义超出标准中给出的行为

    C 标准明确规定编译器 库组合可以使用以下代码执行任何操作 int doubleFree char p int temp p free p free p return temp 然而 如果编译器不需要使用特定的捆绑库 C 标准中是否有任何内
  • 仅使用 Python 生成示例 SOAP 请求和响应模板。没有 Zeep、SOAPUI 或任何其他工具

    我对 python 很陌生 对网络服务也很陌生 我最近开始了一个我非常热衷的项目 这是一个很好的学习机会 然而 经过几周的研究 我陷入了困境 需要一些帮助 我想做的是制作我自己的 WSDL 界面 其工作方式类似于 SOAPUI 我的程序将解
  • Express + EJS - 将参数传递给 EJS 视图

    我对 Node js Express EJS 相当陌生 我最近注意到 当我将参数从 Express 请求处理程序传递到 EJS 视图并省略参数名称时 它会根据变量名称创建一个名称 例如 在下面的代码中 server js var expre
  • 查找平面图(几何形状)的边界(边界)边缘

    我有顶点和边列表来描述平面几何形状 面是三角形 例如 a b e c d Verts a b c d e Edges a b a c a d a e b c c d d e 这就是我所掌握的有关该特定平面几何形状的所有信息 在此示例中 唯一
  • 在Java桌面应用程序中嵌入谷歌地图

    我想在 JPanel 上嵌入谷歌地图 由于我想要放大 缩小等功能 因此使用静态图像是不可行的 为了实现这一点 我可能需要在我的 Java 桌面应用程序中嵌入一个网页 显示谷歌地图 我读到我需要像 WebKit 替代品 这样的东西来完成这个任
  • 有没有办法从文档中隐藏宏模式?

    从 Rust 1 6 0 开始 生成的文档隐藏了每个宏模式的实现 有没有办法从 Cargo 生成的文档中隐藏一些模式 macro rules mc hide this entire pattern impl arg expr gt 42 a
  • Laravel 数据透视表观察者

    我有一个具有更新方法的观察者 观察者ServiceProvider php public function boot Relation observe RelationObserver class 关系观察者 php public func
  • JS:替换对象中与模式匹配的所有字符串值?

    我正在寻找一种有效的方法来替换对象内的值 如果它们与特定模式匹配 var shapes square attr stroke stroke width circle attr fill stroke width 例如 我希望能够将所有 图案