当前位置: 首页 > news >正文

js常用函数总结

js常用函数总结
1、模糊搜索
export const fuzzyQuery = (list, keyWord, attribute = 'name') => {const reg = new RegExp(keyWord)const arr = []for (let i = 0; i < list.length; i++) {if (reg.test(list[i][attribute])) {arr.push(list[i])}}return arr
}
list 原数组
keyWord 查询的关键词
attribute 数组需要检索属性
2、遍历树节点
export const foreachTree = (data, callback, childrenName = 'children') => {for (let i = 0; i < data.length; i++) {callback(data[i])if (data[i][childrenName] && data[i][childrenName].length > 0) {foreachTree(data[i][childrenName], callback, childrenName)}}
}
const treeData = [{id: 1,label: '一级 1',children: [{id: 4,label: '二级 1-1',children: [{id: 9,label: '三级 1-1-1'}, {id: 10,label: '三级 1-1-2'}]}]}],let result
foreachTree(data, (item) => {if (item.id === 9) {result = item}
})
console.log('result', result)  // {id: 9,label: "三级 1-1-1"}
3、数组对象根据字段去重
export const uniqueArrayObject = (arr = [], key = 'id') => {if (arr.length === 0) returnlet list = []const map = {}arr.forEach((item) => {if (!map[item[key]]) {map[item[key]] = item}})list = Object.values(map)return list
}
arr 要去重的数组
key 根据去重的字段名
4、解析URL参数
export const getSearchParams = () => {const searchPar = new URLSearchParams(window.location.search)const paramsObj = {}for (const [key, value] of searchPar.entries()) {paramsObj[key] = value}return paramsObj
}
5、判断Andoird还是IOS
export const getOSType=() => {let u = navigator.userAgent, app = navigator.appVersion;let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);if (isIOS) {return 'IOS';}if (isAndroid) {return 'Andoird';}return '其他';
}
6、随机获取眼色值
function getRandomColor(){return `#${Math.floor(Math.random() * 0xffffff) .toString(16)}`;
}
7、随机打乱数组
function shuffle(arr) {for (let i = arr.length - 1; i > 0; i--) {const randomIndex = Math.floor(Math.random() * (i + 1));[arr[i], arr[randomIndex]] = [arr[randomIndex], arr[i]]}return arr
}
http://www.lryc.cn/news/289740.html

相关文章:

  • cartographer离线建图报错:data_.trajectory_nodes.SizeOfTrajectoryOrZero
  • 【YOLO系列算法俯视视角下舰船目标检测】
  • python进程间使用共享内存multiprocessing.shared_memory来通讯
  • 经典目标检测YOLO系列(三)YOLOv3的复现(2)正样本的匹配、损失函数的实现
  • 编程笔记 html5cssjs 061 JavaScrip简介
  • 计算机网络 第5章(运输层)
  • pythonSM4加密
  • JSP在线阅读系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc
  • el-date-picker设置default-time的默认时间
  • List集合根据对象某个元素去重
  • QML Qt4版本移植到Qt5概述
  • 【极数系列】Flink环境搭建Linux版本 (03)
  • 2023年深圳市节假日人口迁入数据,shp/excel格式,需要自取!
  • Windows10上通过MSYS2编译FFmpeg 6.1.1源码操作步骤
  • HiveSQL题——用户连续登陆
  • 题解仅供学习使用
  • Linux命令-apt-get命令(Debian Linux发行版中的APT软件包管理工具)
  • matlab appdesigner系列-仪器仪表3-旋钮
  • 常见の算法5
  • MYSQL中group by分组查询的用法详解(where和having的区别)!
  • 架构篇25:高可用存储架构-双机架构
  • 微信小程序(十五)自定义导航栏
  • Python3进行pdf文件分割及转word
  • 深入理解TCP网络协议(1)
  • QT 中如何使用 JSON 功能?
  • C++面试:算法的执行效率和资源消耗、时间和空间复杂度分析根据实际场景,选用合适的数据结构和算法进行程序设计
  • 力扣100215-按键变更的次数
  • STM32-GPIO输出(HAL库)
  • 倒计时80天
  • PBM模型参数详解