如何根据数字范围过滤数组?

2023-11-27

我有一个用这个函数过滤的数组:

function filter(arr, criteria) {
    return arr.filter(function(obj) {
        return Object.keys(criteria).every(function(c) {
            return !(criteria[c]) || obj[c] == criteria[c];
        });
    });
}

var arr = filter(arr, { dep: dv, arr: av, car: cv, epi: acv, dur: dv }); 

我有很多选项可供用户在选择中进行选择。对于持续时间,这是我所拥有的:

<select name="duration" id="duration">
  <option selected disabled hidden value="">-</option>
  <option value="l1">Less than 1 hour</option>
  <option value="1to3">1 to 3 hours</option>
  <option value="3to6">3 to 6 hours</option>
  <option value="6to10">6 to 10 hours</option>
  <option value="m10">More than 10 hours</option>
</select>

但该过滤器是基于精确的标准。我想过滤浮点数arr介于 1 和 3 或 6 和 10 之间。我还希望能够运行您在上面看到的其他过滤器,包括 dep、arr、car、epi、dur。我有什么办法可以做到这一点吗?


Use array.filter有回调。下面的代码使用一个字典,其中的条目对应于选项值。

var myArray = [1,2,3,3.1,Math.PI,4,4.3,6.1]; //sample array
//Dictionary from option values to functions (JS objects work like hashtables)
var options = {
  "l1":   function(a){return a.duration<1;},
  "1to3": function(a){return a.duration>=1 && a.duration<3;},
  "3to6": function(a){return a.duration>=3 && a.duration<=6;},
...
//When you need to filter the array, do it like so:
var myNewArray = myArray.filter(
  options[ document.getElementById('duration').selectedOptions[0].value ]
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据数字范围过滤数组? 的相关文章

  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

    我正在尝试从创建的音频 blob 创建对象 URLgetUserMedia 该代码在 Chrome 中可以运行 但在 Firefox 中存在问题 错误 当我打电话时stopAudioRecorder 它停在audio player src
  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • Iframe 相对路径挑战

    我有一个页面 在页面内有一个 Iframe 目录如下 Folder1 Folder2 IframeCSS IframeCSS Css iframePage1 html stuff css parentPage1 html 在 iframeP
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • 避免响应式页面的重复内容

    我目前正在做一个涉及响应式设计的项目 整个布局应该使用HTML和CSS来实现 我知道可以使用 java 脚本将内容从一个列布局移动到另一列布局 而无需复制内容 但是使用 HTML 和 CSS 是否可以实现相同的效果 以下面的例子为例 它会在
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 有没有办法阻止 prettier / prettier-now 将函数参数分解为新行

    当使用 prettier prettier now 在保存时进行格式化时 当一个函数包装另一个函数时 它会中断到一个新行 我想知道是否有办法阻止这种行为 例如 期望的输出 app get campgrounds id catchAsync
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c
  • 为什么元素上的负底部边距会降低该元素父元素的高度?

    这可能是由于边距折叠造成的 我知道边距折叠 至少知道它如何影响相邻元素 但我不明白当涉及负边距时它如何在嵌套元素上工作 例如 在此标记和随附的 CSS 中 Markup div class parent div class child Ch
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 无效字符错误:“fred”

    我确信他一定是一个新手问题 简单来说 我想定义我的第一个 Polymer dart 组件 只是我一直在同一个减速带上踢脚趾 为了使事情变得非常简单 我将其简化为一个非常简单的示例 我做了一个简单的rename示例 跑表 来自 Dart 组件

随机推荐

  • 使用 phpmailer 发送异步电子邮件

    是否可以使用 phpmailer 发送异步电子邮件 普通邮件发送代码片段如下 mail gt Send PHP 等待 Send 返回结果 然后再继续 是否可以让 phpmailer 立即返回结果 而无需等待真正的电子邮件发送例程完成 201
  • PreparedStatement很慢,但是手动查询很快

    我有一个来自框架的准备好的声明 如下所示 SELECT OH ORDER ID MAX OS STATUS DATETIME FROM public ORDER HEADER OH public ORDER STATUS OS WHERE
  • 在 Eclipse 中附加 jar 的源

    我添加了一个Student jar进入我的Build Path在我的日食中这样 右键单击项目 gt BuildPath gt 配置构建 路径 gt 库 gt 添加外部罐子 有一个类名为StudentTest in Student jar文件
  • 从实体框架连接字符串创建 DataContext?

    我试图在我的代码中进行此调用 string conn ConfigurationManager ConnectionStrings MyDBEntities ConnectionString DataContext context new
  • HTML DTD - 有什么意义? [复制]

    这个问题在这里已经有答案了 可能的重复 html 中有哪些不同的文档类型以及它们的含义是什么 由于对 Web 开发的某些方面相当缺乏经验 我总是更关注后端而不是前端 任何人都可以告诉我他们的想法 我是否应该担心网页开头所做的 DOCTYPE
  • 通过网页抓取提取 JavaScript 变量值

    对于一个公司项目 我需要使用 PHP 和 JavaScript 包括 jQuery 创建一个网络抓取应用程序 该应用程序将从客户网站的每个页面中提取特定数据 抓取应用程序需要为每个页面获取两种类型的数据 1 确定是否存在具有特定 ID 的某
  • 如何通过 AWS API Gateway 将多个 Cognito 用户池用于单个端点?

    我最近实现了一个 API 网关作为具有单个代理端点的代理 我使用 Cognito 作为授权机制 只要我只有一个用户池 一切都很好 我想要实现的是能够允许来自不同用户池的用户 但在AWS控制台中我似乎只能选择一种Cognito机制 而该机制只
  • Google Datastore 综合索引问题

    我遇到以下异常 Exception in thread main com google cloud datastore DatastoreException no matching index found recommended index
  • 获取所有维基百科信息框模板和使用它们的所有页面

    给定一个维基百科页面 例如维基百科 堆栈溢出通常会有信息框 主要位于页面顶部的右侧 截图示例 DBPedia 将所有这些属性列为 RDF 三元组 您可以在以下位置查看示例DBPedia 堆栈溢出 在那里你可以看到该房产dbpprop wik
  • asp.net core razor页面支持删除和放置请求

    最近 我读到有关 asp net core razor 页面中的请求处理的内容 它说它支持head使用约定的请求 public void OnHead 它工作得很好 然后我也尝试使用相同的约定进行删除 public void OnDelet
  • 删除尾部斜杠

    我想处理没有尾部斜杠的页面 所以现在我希望带有尾部斜杠的 URL 重定向 使用 htaccess 到不带尾部斜杠的相同 URL 我有两个 htaccess 文件
  • 错误:未处理的异常:'package:flutter/src/widgets/navigator.dart':断言失败:第 2845 行 pos 18:'!navigator._debugLocked':不是 true [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我面临一个问题Unhandled Exception package flutter src widgets navigator dart Failed assertion line 28
  • 替换Python中字符串的一部分?

    我使用正则表达式从网页获取字符串 部分字符串可能包含我想用其他内容替换的内容 怎么可能做到这一点 我的代码是这样的 例如 stuff Big and small if stuff find and 1 make stuff Big smal
  • 主题:忙等待 - 空 While 循环 [重复]

    这个问题在这里已经有答案了 在大学的课程中 我们了解到Threads并使用 忙等待 方法作为示例Car等待在一个TrafficLight 对于此任务 我们构建三个类 TrafficLight implements Runnable Car
  • 如何在一个会话中发送多封电子邮件?

    我想要向不同的收件人发送数千封不同的电子邮件 并且想要打开与我的 SMTP 的连接并保留它 我希望这比重新打开 ervy 邮件的连接更快 我想使用 Apache Commons Email 但如果需要的话可以回退到 Java Mail AP
  • python-vlc 不会启动播放器

    好的 开始吧 我正在尝试播放在线视频 我得到了网址 如下所示 http fsi stanford edu sites default files video 4 mp4它不是我将在我的应用程序中使用的东西 但它只是一个示例文件 阅读 pyt
  • 使用自定义签名定义保存 TF2 keras 模型

    我有一个 Keras 顺序 模型 可以使用 Tensorflow 1 13 中的自定义签名定义进行保存 如下所示 from tensorflow saved model utils import build tensor info from
  • 在 Windows 上安装用于 ruby​​ 的 ncurses

    我正在尝试在 Windows 上为 ruby 安装 ncurses 我之前没有在我的机器上安装过 ncurses 我认为拥有 红宝石开发套件 它要求就足够了 但现在我被要求指定选项 我不知道该选择哪些选项 或者我是否需要执行 安装其他操作才
  • Swift 3 以编程方式创建 UILabel 并添加 NSLayoutConstraints

    您好 我正在尝试以编程方式创建一个标签并添加 NSLayoutConstraints 以便无论屏幕大小和方向等如何 它都位于超级视图的中心 我已经看过 但只是找不到可以遵循的示例 这是我所拥有的 let codedLabel UILabel
  • 如何根据数字范围过滤数组?

    我有一个用这个函数过滤的数组 function filter arr criteria return arr filter function obj return Object keys criteria every function c