js模糊匹配数组中含有某字符串

2023-10-29

// 数组中匹配单个字符串的方法,传入数组支持格式[{},{}],
   function searchStr(str, arr) {
    let newList = []
    // 要匹配字符串的首个字符
    let startChar = str.charAt(0)
    // 要匹配字符串的字符长度
    let strLength = str.length
    for (let i = 0; i < arr.length; i++) {
      // 默认数组arr中对象arr[i]不存在str
      let isExist = false
      let obj = arr[i]
      for (let key in obj) {
        if (typeof (obj[key]) === 'function') {
          obj[key]()
        } else {
          let keyValue = ''
          // 获取arr[i][key]的值
          if (obj[key] !== null && typeof (obj[key]) === 'string') {
            keyValue = obj[key]
          } else if (obj[key] !== null && typeof (obj[key]) !== 'string') {
            keyValue = JSON.stringify(obj[key])
          }
          // arr[i][key]中的各个位置的字符与str的0位置字符startChar对比如果相等,
          // 在arr[i][key]中从j位置截取与str长度相同的字符,对比是否相等
          for (let j = 0; j < keyValue.length; j++) {
            // 把原有数据转化为小写,输入数据也转化为纯小写,实现模糊匹配,如区分大小写,可删除toLowerCase()
            if (keyValue.charAt(j).toLowerCase() === startChar.toLowerCase()) {
              if (keyValue.substring(j).substring(0, strLength).toLowerCase() === str.toLowerCase()) {
                // 模糊匹配到的字符存在表示arr[i]中存在str
                isExist = true
                break
              }
            }
          }
        }
      }
      // 当arr[i]中存在str时,把arr[i]放入一个新数组
      if (isExist === true) {
        newList.push(obj)
      }
    }
    // 最后返回这个新数组
    return newList
  },

 

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

js模糊匹配数组中含有某字符串 的相关文章

  • C++累加求和 (阶乘)

    include
  • open3d学习教程2--点云1

    目录 1 open3d介绍 2 点云 2 1 读取 可视化点云 2 2点云体素下采样 2 3点法线估计 2 4点云着色 1 open3d介绍 接着上一节点云pointcloud open3d是一个开源库 支持快速处理3d数据 比如点云 体素
  • Mysql文件导出数据库,以及Linux中导入数据库

    1 导出命令mysqldump u root p test gt test sql 2 上传到linux服务器上 3 导入数据库文件 4 进入linux中的mysql 5 创建数据库ssm 6 source sql文件的路径名称 7 打包s
  • 最小二乘法构建线性回归方程

    目录 一 相关数学知识的定义 1 1 一元线性回归的定义 1 2 相关系数R 的定义 二 使用jupyter来做一元线性回归分析 2 1 根据最小二乘法公式手动构建一元线性回归模型 2 2 调用包实现一元线性回归模型 三 用excel进行一
  • Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

    Three js实例详解 旋转的精灵女孩 附完整代码和资源 一 本文目录 一 旋转的精灵女孩 案例运行效果 二 Three js简介 三 Three js代码正常运行显示条件 1 不载入任何纹理贴图的网页 2 从外部文件里载入几何体或是纹理
  • 五、java代码实现快速排序

    快速排序思路 每一轮排序选择一个基准点进行分区 让小于基准点的元素进入一个分区 大于基准点的元素进入另一个分区 当分区完成时 基准点元素的位置就是其最终的位置 在子分区内重复以上过程 直至子分区元素个数少于等于1 分治算法 代码实现 单边循
  • Redis常用value命令

    本文是根据B站大学动力节点课程总结而来 原视频请移步至Redis7 033 ZSet型value操作命令 2 哔哩哔哩 bilibili PS 其中的某个视频音画不同步 redis中的value类型有五种 分别是String 字符串类型 H
  • LC-3汇编语言求成绩等级

    题目描述 背景 16名学生成绩排序 及统计分析 成绩分类规则 A 全班排名前25 且成绩在85分及以上 B 非A成绩 全班排名前50 且成绩在75分及以上 C 非A B成绩 要求 使用LC 3汇编语言 编写程序实现以上功能 输入 16名学生
  • C#面向对象编程

    面向对象 C 不是一种纯粹的面向对象编程语言 它提供了多种编程范式 但是 面向对象是C 的一个重要概念 也是 NET 提供的所有库的核心原则 面向对象的三个最重要的概念是继承 封装和多态性 本章将介绍如何使用继承增强基类型 如何创建类层次
  • kafka应用问题

    1 问题一 Connection to node 2 could not be established Broker may not be available 解决办法 1 检查防火墙是否开放相关端口 2 如果是部署在云服务器 检查云服务器
  • C++ 拷贝(复制)构造函数

    拷贝构造函数用以将一个类的对象拷贝给同一个类的另一个对象 比如之前学习过的string类 string s1 string s2 s1 一般情况下的拷贝构造函数 class A private int n double d char s p
  • 小梅哥Xilinx FPGA学习笔记6——参数化设计及模块重用设计流水灯(跑马灯)

    参数化设计及模块重用设计流水灯 功能介绍 1 功能描述 一 代码编写 1 设计文件 2 激励文件 3 仿真图 二 总结 功能介绍 1 功能描述 8个Led灯以0 5s的的速率循环闪烁 参数化设计并且调用三八译码器模块完成该设计 三八译码器模
  • TCP/IP详解 卷1:协议 学习笔记 第六章 ICMP:Internet控制报文协议

    ICMP是IP层的组成部分 用来传递差错报文和其他需要注意的信息 它通常被更高层的协议 TCP UDP 使用 一些ICMP报文把差错返回给用户进程 类型字段可以有15个不同值 用来描述ICMP报文的类型 某些ICMP还使用代码字段的值进一步
  • 【BZOJ 4069】 [Apio2015]巴厘岛的雕塑

    4069 apio2015 巴厘岛的雕塑 Time limit 1000 ms Memory limit 65536 KB Description The province of Bali has many sculptures locat
  • QSharedMemory

    来源 https www devbean net 2013 11 qt study road 2 ipc Qt 提供了四种进程间通信的方式 1 使用共享内存 shared memory 交互 这是 Qt 提供的一种各个平台均有支持的进程间交
  • 难解的AIoT焦虑,华为是否在准备一剂特效药存在?

    几个月前有朋友问我 AIoT到底是什么 跟说了好多年的IoT有什么不同 我是这么回答的 想一想有台空调 可以手机来操控它打开和关闭 你想买不 我家的空调现在就可以 可是从来没用过手机操作 遥控器就在茶几上触手可得 打开手机找到APP再操作太
  • redis详解(二)—— 数据类型详解

    Redis常用数据类型详解 1 Redis最为常用的数据类型主要有以下 String Hash List Set Sorted set pub sub Transactions 在具体描述这几种数据类型之前 我们先通过一张图了解下Redis

随机推荐

  • 信号量与共享内存实现进程间通信(生产者消费者问题为例)

    一 信号量 信号量是IPC的一种 可以看做是一个计数器 计数值为可用的共享资源的数量 信号量可用于多进程的同步 为多个进程提供对共享资源的访问 linux下的信号量的接口函数如下 1 获取信号量 int semget key t key i
  • 学习心得_我的算法学习心得

    关于 严格来说 本文题目应该叫作 我的数据结构和算法面试学习心得 但这个写法实在太绕口 所以干脆叫 我的算法学习心得 希望对大家有帮助 需要说明下 本文主要是应对面试的算法学习 这篇文章讲了什么 对于算法的认知 算法的方法总结 小结 算法的
  • 解决python3 pkl文件打印出的数组有省略号的问题(numpy, pytorch)

    问题描述 python3 load了pkl文件后 发现打印出来的数组有省略号 不能用于继续的计算和操作 import pickle with open filename pkl rb as f data pickle load f prin
  • 'chcp' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 'cmd' 不是内部或外部命令,也不是可运行的...

    打开anaconda promp 提示 chcp 不是内部或外部命令 也不是可运行的程序 或批处理文件 cmd 不是内部或外部命令 也不是可运行的 解决办法 我在安装Anaconda是默认添加了环境变量 此时需要在环境变量的系统变量的pat
  • 经典网络VGGNet介绍

    经典网络VGGNet 其中VGG为Visual Geometry Group 由Karen Simonyan等于2014年提出 论文名为 Very Deep Convolutional Networks for Large Scale Im
  • oracle expdp导出时报 ora-39070:无法打开日志文件

    在通过expdp导出命令导出某个用户的对象时出现以下截图错误 ORA 39002 操作无效 ORA 39070 无法打开日志文件 ORA 39087 目录名
  • MVG学习笔记(1) --无处不在的射影几何

    文章目录 前言 无处不在的射影几何 坐标 齐次性 仿射和欧几里得几何 仿射几何 欧几里得几何 3D欧几里得几何 前言 关于计算机视觉圣经的学习笔记 本次此系列的博文除了本次博文 基本不会包含前言了 参考书 多视图几何 第二版 无处不在的射影
  • python基础一(print函数+变量赋值 )

    1print 函数 注意 敲代码必须是英文输入状态 1 1 无引号 print 123 1 2单引号 print 路飞 1 3 双引号 注意 是英文输入法下的双引号 不是两个单引号 与单引号效果没什么差别 print one piece 1
  • 如何分析和提高大型项目(C/C++)的编译速度?

    C 编译基本原理 对于C C 代码通常来说整个构建过程分为以下几个主要部分 预处理 在此阶段主要完成的工作是将头文件展开 替换宏指令 条件编译展开 消除注释 编译 在此阶段主要将预编译好的文件转换成汇编语言 高级语言 gt LLVM平台无关
  • 生产制造业ERP系统模块

    生产制造业ERP系统模块 1 计划管理系统 1 物料需求管理 支持如下功能 配置产品的管理 用户可以定义可选件 必选件 以及必选件中的可选件 BOM成批修改 BOM合法性 完整性和嵌套性检查 BOM单级正查和反查 多级正查和反查 以及综合查
  • 手把手教你实现红黑树

    目录 一 红黑树介绍与优势 二 红黑树的特性 所有节点不是黑色就是红色 根节点为黑色 红色节点的左右孩子节点必须为黑色 每一条路径均含有相同的黑色节点数 叶子节点为黑色 三 红黑树实现原理 一 插入节点颜色选择 二 插入后 父节点是黑色 三
  • Waiting for changelog lock....

    Could not acquire change log lock Currently locked by XXXXXX 在本地启动 的时候 一直停在Waiting for changelog lock 然后最后的异常是Could not
  • 自学Python能干些什么副业

    Python是一种非常优秀的编程语言 它逐渐受到越来越多人的青睐 并且已经了解到Python可以做很多事情 同时 还可以使用Python做一些兼职工作 如 兼职数据处理 兼职数据查询 兼职p图等 自学Python能干些什么副业 Python
  • 抖音C#版,自己抓第三方抖音网站

    感谢http dy lujianqiang com技术支持 文章更新 http dy lujianqiang com这个服务器已经关了 现在没用了 版权归抖音公司所有 该博客只是为交流学习所使用 编译后的内容将24小时内删除 该程序所获取到
  • 深度分析:Spring Boot 的接口限流算法

    在一个高并发系统中对流量的把控是非常重要的 当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用 不处理的话甚至会造成整个应用不可用 那么何为限流呢 顾名思义 限流就是限制流量 就像你宽带包了1个G的流量 用完了就没了 通过限流
  • 「MindMaster」思维导图 使用「指南」

    前言 思维导图是一个可视化的图形思维工具 为什么要用思维导图 能帮助你从多方面多角度去思考 去发散 能帮助你理清复杂的逻辑关系 其倡导的网状的分散性思维和纵深性的逻辑思维有助于你形成相对完整的结构性思维 常见的逻辑结构 思维导图 发散和纵深
  • 机器学习 day26(多标签分类,Adam算法,卷积层)

    1 多标签分类 多标签分类 对于单个输入特征 输出多个不同的标签y 多类分类 对于单个输入特征 输出单个标签y 但y的可能结果有多个 2 为多标签分类构建神经网络模型 我们可以构建三个不同的神经网络模型来分别预测三个不同的标签y 但这种方法
  • 【宜搭】低代码开发师(中级)考试仓库库存管理系统流程

    目标 根据步骤能快速通过考试 一 建一个进货登记表 注意点 如图 公式如下
  • 数据结构与算法-线性表-线性存储结构

    数据结构中的线性表的第一种物理结构 顺序存储结构 它的c 实现代码如下 ifndef SHUNXUBIAO H define SHUNXUBIAO H include
  • js模糊匹配数组中含有某字符串

    数组中匹配单个字符串的方法 传入数组支持格式 function searchStr str arr let newList 要匹配字符串的首个字符 let startChar str charAt 0 要匹配字符串的字符长度 let str