查找数组中具有下一个较低值的对象

2024-01-16

我需要使用权重值获取数组中下一个较低的对象。

const data = [
  { weight: 1, size: 2.5 },
  { weight: 2, size: 3.0 },
  { weight: 4, size: 3.5 },
  { weight: 10, size: 4.0 },
  { weight: 20, size: 5.0 },
  { weight: 30, size: 6.0 }
]

如果重量是19,我需要得到这个物体{ weight: 10, size: 4.0 }.

通过这次尝试,我确实获得了最接近的对象,但我总是需要获得具有下一个最低值的对象。如果权重小于 1,则应返回第一个元素。

const get_size = (data, to_find) => 
  data.reduce(({weight}, {weight:w}) =>
     Math.abs(to_find - w) < Math.abs(to_find - weight) ? {weight: w} : {weight}
  )

如果对象的权重按顺序排列,就像问题中一样,一种选择是从数组末尾进行迭代。第一个匹配的对象就是您想要的。

If the .find下面不返回任何内容,交替使用|| data[0]获取数组中的第一项:

const data = [
  { weight: 1, size: 2.5 },
  { weight: 2, size: 3.0 },
  { weight: 4, size: 3.5 },
  { weight: 10, size: 4.0 },
  { weight: 20, size: 5.0 },
  { weight: 30, size: 6.0 }
]

const output = data.reverse().find(({ weight }) => weight < 19) || data[0];
console.log(output);

(如果你不想变异data, 你可以.slice首先)

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

查找数组中具有下一个较低值的对象 的相关文章

  • 创建一个简单的 10 秒倒计时

    我想要一行这样写的 Your download will begin in 10 9 8 etc Beginning on page load seconds 我已经设置了 10 秒下载文本 并且我还查看了其他 stackoverflow
  • 如何导入和导出 javascript ES6 类

    我是 javascript 和 nodejs 的新手 我正在使用这个项目来发展我的技能并学习新技术 目前我的项目使用多个相互依赖的类 类文件位于不同的目录中 我当前正在尝试使用 export 和 require 语句来允许在其他文件中引用类
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 如何以编程方式退出或关闭 Javascript UWP 应用程序? (Windows 10)

    我制作了一个游戏 它需要自己的退出按钮 我无法使用CoreApplication Exit https msdn microsoft com en us library windows apps windows applicationmod
  • 使用文件 API 将资源加载到 Three.js 中

    我想创建导入 3D 模型以在浏览器中查看的功能 方法是使用File API http www html5rocks com en tutorials file dndfiles Three js 加载器在我托管的文件上运行良好 我的理解是加
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • 在 Fabric.js 中按宽度/高度在另一个画布对象内居中和缩放画布对象

    Goal 将一个对象 水平和垂直 置于另一个对象 矩形或组 的中心canvas via Fabric js或者通过Javascript保持原始对象的长宽比相同 但也不超过父对象的宽度 高度比例 父对象 矩形或组 不会居中于canvas元素
  • 如何使用 vanilla JS 实现可维护的反应式 UI

    今天我遇到了一个问题 可以通过使用像 Vue 这样的反应式和状态管理框架来轻松解决 遗憾的是 无法使用它 以下 简化 情况 链接到代码笔 https codepen io theiaz pen BazErKV 我们有一个服务器渲染的页面 其
  • 获取点击的的DOM路径

    HTML div class lol a class rightArrow href a div 伪代码 rightArrow click function rightArrowParents this dom dom is the pse
  • 如何在 ASP.NET MVC 3 的 Razor 视图中编码嵌入的 javascript?

    如何在以下上下文中正确编码 JavaScript 我的 JSON 对象中的值是由应用程序管理员设置的 因此我假设它们需要正确编码 对于 HTML 和 JavaScript 都是如此 我在用着System Web Script Seriali
  • 从 DirectionsRenderer 中获取折线或标记的事件

    我正在使用 DirectionsService 和路线方法来生成 DirectionsResult 我还使用 DirectionsRenderer 对象来显示结果 因为它非常易于使用 我在检测 Directions changed 事件时没
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • mozilla pdf.js 没有全视图

    我喜欢这个 pdf 查看器https github com mozilla pdf js https github com mozilla pdf js Demo http mozilla github com pdf js web vie
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • Node npm 包抛出使用严格:全局发布和安装后未找到命令

    我正在尝试发布 npm 包 当我全局安装该包并尝试运行 cli 命令时 我收到此错误 nvm versions node v0 12 2 bin myPack line 1 use strict command not found nvm
  • 将 RequireJS 与遗留代码结合使用

    我正在处理一个非常大的项目 该项目使用 包含带有脚本标记的 javascript 文件的旧版 JSP 页面 使用其他 javascript 模块而不使用 RequireJS 的骨干模型和视图 现在 我们希望开始将 RequireJS 与 j
  • Flowtype 属性“msg”缺失为 null 或未定义

    我发现 Flow 很难用 我明白那个Array find可以返回或未定义 因此 通过阅读以下内容 github Array find on Array 引发 https github com facebook flow issues 351

随机推荐

  • R函数不会修改全局变量

    我有一段简单的 R 代码 它从网站读取 html 数据 然后我尝试循环浏览页面并从每个页面获取数据 我已经多次使用这段代码并且它有效 它将每个页面的结果添加到 R 变量中 但由于某种原因 它在该网站上不起作用 有任何想法吗 library
  • 使 jQuery DataTables 默认提交所有行,而不仅仅是搜索时显示的行

    我使用 jQuery DataTables 来显示系统中的记录 通常使用
  • 使用抗锯齿绘制旋转位图

    我尝试在打开抗锯齿的情况下绘制旋转位图 但它仍然有锯齿并且不平滑 有什么帮助吗 我做了如下 final Paint p new Paint Paint ANTI ALIAS FLAG p setAntiAlias true canvas r
  • 如何使用 grails 1.3.2 和插件 spring-security-core 1 实现自定义 FilterSecurityInterceptor ?

    我正在编写一个 grails 1 3 2 应用程序并使用 spring security core 1 0 实现安全性 由于超出此问题范围的原因 除了开箱即用的拦截器之外 我还实现了自定义 FilterSecurityInterceptor
  • 如何将 future<> 分配给 flutter 中的小部件?

    假设我有一个SingleChildScrollView 其内容是从文件中读取的 singleChildScrollView padding EdgeInsets all 8 0 child nw Text getTextFromFile l
  • Pandas:查找包含列表的一列中的最大值

    我有一个像这样的数据框 fly frame day plcae 0 1 2 3 4 5 A 1 1 2 3 4 B 2 1 2 C 3 1 2 3 4 D 如果我想找到日期列中每个条目的最大值 例如 fly frame day plcae
  • 安卓:语音识别

    可能重复 但我没有找到下面问题的答案 这两天我一直在研究语音识别 但没有得到问题的答案 是否可以将语音识别作为服务来运行 我想实现这样的事情 尽管我的手机通过语音识别处于睡眠模式 但我需要拨打一个号码 当我在火车 公共汽车等地方时 语音识别
  • JavaScript Regex - 查找所有可能的匹配项,即使是在已捕获的匹配项中

    我正在尝试获得所有可能的匹配使用 JavaScript 的正则表达式从字符串中获取 看来我这样做的方法没有匹配已经匹配的字符串部分 变量 var string A1B1Y A1B2Y A1B3Y A1B4Z A1B5Y A1B6Y A1B7
  • 禁用索引 pandas 数据框

    如何删除或禁用 pandas Dataframe 中的索引 我正在从 python for dataanalysis 一书中学习 pandas 并且我已经知道我可以使用 dataframe drop 删除一列或一行 但我没有找到任何关于禁用
  • Mongodb - 当属性具有 Interface 返回类型时如何反序列化

    我试图避免在数据层和使用该层的客户端代码之间引入任何依赖关系 但在尝试使用 Mongo 执行此操作 使用 MongoRepository 时遇到了一些问题 MongoRepository 显示了您创建反映数据结构的类型并在需要时继承实体的示
  • Selenium:如何将浏览器设置为离线模式?

    我需要测试我的应用程序的一项功能 该功能设计为在离线模式下执行 在互联网连接恢复之前使用本地存储对数据进行排队 Selenium可以将浏览器设置为离线模式吗 您可以为 Firefox 创建新的浏览器配置文件 然后配置该配置文件以使用离线模式
  • IE9 是否支持 WebGL 和/或 WebSockets? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions IE9 是
  • 应用栏上的圆角底部

    我想制作一个圆底的应用栏 如下所示 我将如何实现这样的应用程序栏 我尝试阅读 CustomPainter 的文档 但我不认为这是正确的方法 在 Flutter 中 您可以使用 shape 属性在 AppBar 小部件中自定义形状 AppBa
  • 如何从 sqlalchemy jsonify 对象?

    我正在使用 Flask SQLAlchemy 和 javascript 我需要通过 AJAX 将查询结果以 json 格式传递给 javascript 但我不断收到此错误 raise TypeError repr o is not JSON
  • Maven 出现 Eclipse 错误“路径必须包含项目和资源名称”

    我最近开始将 Maven 与 Eclipse 一起使用 我已经设置了几个项目 并且我注意到 如果我尝试指定项目目录之外的构建目录 以覆盖目标 则在执行 更新项目 时会出现错误 更新 Maven 项目 遇到问题 期间发生内部错误 更新 MAv
  • SQLite更新查询Android

    该表包含 4 列 rowID word defintition group id 我想更改某一行的单词和定义 这是我的代码 word 是一个对象 其中存储了 word definition id 和 group id ContentValu
  • 在bat上运行带有删除文件的jar

    我想将文件拖放到 bat 文件上 删除它后 我想运行一个 jar 文件 并将删除的文件路径作为输入 如何才能使用相对路径运行 jar 文件 我的 bat 文件运行的目录是我的用户目录 而不是它所在的目录 goal cmd c java ja
  • 如何获取 Java 分析转储以在 Mac 上创建火焰图?

    我想从我的 Java 应用程序中收集堆栈跟踪来创建CPU 火焰图 http www brendangregg com FlameGraphs cpuflamegraphs html用于分析 这与这个问题非常相似 如何从每个示例中的分析器中获
  • 返回嵌套泛型表达式>

    错误消息是 找不到类型或命名空间名称 T public static Expression
  • 查找数组中具有下一个较低值的对象

    我需要使用权重值获取数组中下一个较低的对象 const data weight 1 size 2 5 weight 2 size 3 0 weight 4 size 3 5 weight 10 size 4 0 weight 20 size