npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

js-fun-bywhj

v1.0.31

Published

封装了js常用的方法

Readme

##开发流程:已写在随笔中 ##使用: npm i js-fun-bywhj

001. formatDate() 时间类型格式化

//formatDate第一个参数必须为时间格式,第二个参数的格式如下:
//'yyyy-MM-dd hh:mm:ss'
// 'yy-M-d h:mm:ss'
// 第二个参数的格式可任意写

import {formatDate} from 'js-fun-bywhj'
console.log(formatDate(new Date(Date.now()),'yyyy-MM-dd hh:mm:ss'))

002. padLeftZero(str,zerosCount) 字符串str不足zerosCount位自动补0

//参数为一个字符串

import {padLeftZero} from 'js-fun-bywhj'
console.log(padLeftZero('66',3))//字符串'66'不足3位就补零,输出066

003. indexOfObj(arr,key,value) 获取数组arr中的对象中包含{key:value}属性的对象在arr中的索引值,找不到就返回 -1

import {indexOfObj} from 'js-fun-bywhj'
console.log(indexOfObj(arr,'name','Mike'))//在数组arr中找到对象中包含 name:'Mike'(如{age:15,name:'Mike'})的对象所对应的索引值

004. removeRepetitionObj(array, keys) 去掉对象中有相同keys的元素

let a = [{
  name: 'Mike6',
  age: 60
}, {
  name: 'Mike6',
  age: 46
}, {
  name: 'Mike',
  age: 46
}, {
  name: 'Mike',
  age: 46
}, {
  name: 'Mikes',
  age: 99
}]

//适用于正常的对象组成的数组,满足:
//001.数组中包含的都是纯的Object对象
//002.每个Object对象的key名必须完全相同

//01将数组中的对象元素中,由上到下依次排查,如果发现元素的age值与其他元素的age的值相同,就删除下面的元素
console.log(removeRepetitionObj(a, ['age']));
//02将数组中的对象元素中,由上到下依次排查,如果发现元素的age值并且name值与其他元素的age、name的值完全相同,就删除下面的元素
console.log(removeRepetitionObj(a, ['age', 'name']));
// ps : 若想获取所有的keys集合,可以这样: Object.keys(a[0])  返回的是['age', 'name']

005. removeRepetitionItem(arr) 只适用于数组中的元素全都是数字或字符串的数组进行数组去重

import {removeRepetitionItem} from 'js-fun-bywhj'
console.log(removeRepetitionItem([11,22,33,55,22,11]))

006. urlParse()

若不传参,则读取浏览器地址中的query,将query转为josn数据
若传参,则参数必须为bane=Mike&age=12这样的字符串,然后将这样的字符串转为josn数据
import {urlParse} from 'js-fun-bywhj'
console.log(urlParse())//读取浏览器地址中的query,将query转为josn数据
console.log(urlParse('name=Mike&age=12'))//将参数转为{name:'Mike',age:12}

007. transferDatas(baseUrl, obj, type)

import {transferDatas} from 'js-fun-bywhj'
//01.将json数据转为query格式:(json中为空值的key,自动删除后在进行输出)
console.log(transferDatas('',{name:'Mike',age:'14',sex:''},'get').split('?')[1])

//02.将json中为空值的key,自动删除后在进行输出一个没有空值的json对象
console.log(transferDatas('',{name:'Mike',age:'14',sex:''},'post'))

//03.GET方法提交:在基本路径后加query参数
console.log(transferDatas('www.baidu.com?a=45',{name:'Mike',age:'14',sex:''},'get'))

//04.POST方法提交,将json中为空值的key,自动删除后在进行输出一个没有空值的json对象
console.log(transferDatas('',{name:'Mike',age:'14',sex:undefined},'post'))

008. delectArrayItem(arr, willDeletArr) 删除数组中指定的元素,适用于纯字符串或纯数字组成的数组

//arr为原数组,将arr数组中想要删除的元素放在一个数组willDeletArr中,然后执行以下方法,即可得到删除后的数组arr
import {delectArrayItem} from 'js-fun-bywhj'
console.log(delectArrayItem([1,10,33,55,66,11],[55,11]))

//可以进行连续使用:
let allNumber = [1, 10, 33, 55, 66, 11]
//以下实现了先删除了allNumber中的55,11,再删除剩下元素中的33,1
console.log(delectArrayItem(delectArrayItem(allNumber, [55, 11]), [33, 1]))

009. removeItemFromArr(arr,item) 在数组arr中删除item元素(item可以是对象或其他数据格式)

import {removeItemFromArr} from 'js-fun-bywhj'
let arr = [1,2,3]
cloneArr([1,2,3],2)
console.log(arr)//[1,3]
//=============================
//若想批量删除数组中的元素,要使用setTimeout来配合执行,代码如下:
let a = [1,2,3,4,5,6]
a.map((item,index)=>{
  if(item>2){
	setTimeout(()=>{
	  removeItemFromArr(a,item)
	  console.log(a);
	},(index + 1) * 1000)
  }
})
console.log(a);//[1,2]

010. removeArrAsObj(arr,willRemoveArr,key)

######arr:原始数组(由对象组成的数组) ######willRemoveArr:arr中子元素(对象)组成的数字 ######key:根据对象中的一个主键进行查找(字符串类型) ######返回值为原始数组删除元素以后的arr

import {removeArrAsObj} from 'js-fun-bywhj'
let a = [{name:'王泓钧',age:12},{name:'Mike',age:45},{name:'Tom',age:45}]
console.log(removeArrAsObj(a,[{name:'Mike',age:45},{name:'Tom',age:45}],'name'));

011. imageCompress(img, width, quality) 参数说明:图片,想要生成的图片宽度,压缩比(如90)

######将图片转为base64以后,在对这个base64进行压缩,该函数返回的是压缩后的base64字符串

import {imageCompress} from 'js-fun-bywhj'
//在需要压缩的事件中写:
let img = new Image();
img.src = 'base64图片格式'
img.onload = function() {
  console.log(imageCompress(img, 100, 90));
}

012. stringIsJsonStr(str) 判断字符串是否为JSON字符串 JSON字符串的格式必须为'{"name":"Mike"}' ,键值对必须双引号

//arr为原数组,将arr数组中想要删除的元素放在一个数组willDeletArr中,然后执行以下方法,即可得到删除后的数组arr
import {stringIsJsonStr} from 'js-fun-bywhj'
console.log(stringIsJsonStr('任意字符串')
//返回true说明参数是JSON字符串,返回false说明参数不是JSON字符串

013. wxReload() 微信页面刷新当前页

import {wxReload} from 'js-fun-bywhj'
wxReload()//调用即可实现刷新当前微信网页

014. randomNum(min,max) 获取min到max之间的随机整数,包含min和max

import {randomNum} from 'js-fun-bywhj'
console.log(randomNum(1, 3))

015. cloneArr(from) 把数组from克隆,返回克隆后的数组

import {cloneArr} from 'js-fun-bywhj'
let arr = cloneArr([1,2,3])

016. isEqualArr(arr1,arr2) 判断两个数组arr1、arr2是否相等(是否一一对应)

import {isEqualArr} from 'js-fun-bywhj'
console.log(cloneArr([1,2,3],[1,2,3]))

017. childrenSortReview(dataArr, originArr, changeArr) 原始大数组中按照从左到右的顺序抽取几个元素组成一个小数组,将该小数组中元素的顺序打乱,然后再根据打乱后顺序的数组,还原大数组

######dataArr:原始大数组 ######originArr:将dataArr的一部分元素从左到右抽出组成的数组 ######changeArr:在originArr的基础上将originArr中元素的顺序打乱组成的数组

import {childrenSortReview} from 'js-fun-bywhj'
console.log(childrenSortReview([55,112,36,5,2,16,87],[112,5,16],[5,16,112]))