1.判断两个数组是否相同
代码如下(示例):
// 判断两个数组是否相同
const isArrEqual = (arr1, arr2) => {
if (arr1.length === arr2.length) {
let tmp = new Set(arr1.concat(arr2))
return tmp.size === arr2.length
}
return false
}
2.根据id需要去重
代码如下(示例):
// 数组去重
function unique(arr, id) {
let hash = {}
return arr.reduce((array, item) => {
if (!hash[item[id]]) {
hash[item[id]] = true && array.push(item)
}
return array
}, [])
}
3.根据值查找数组中值的下标
代码如下(示例):
// 数组查找指定元素
function lookup(arr, id) {
return arr.findIndex(v => {
return v.id === id
})
}
4. 两个数组相比删除相同的id的对象
代码如下(示例):
// 两个数组相比删除相同的id的对象
function del(arr1, arr2) {
return arr1.filter(item => !arr2.some(ele => ele.id === item.id))
}
5. 改变地址栏的参数
代码如下(示例):
/**
*
* 改变地址栏的参数
* @export
* @param {*} key -要改变地址栏传参名
* @param {*} value -改变之后的值
* @param {string} [type='pushState'] ]-改变传参之后是否要刷新页面,默认不刷新
*/
export function addOrUpdateQuery(key, value, type = 'pushState') {
//改变传值之后判断是否要刷新页面
let url = type === 'location' ? location.href : location.hash;
if (!url.includes('?')) {
url = `${url}?${key}=${value}`;
} else {
if (!url.includes(key)) {
url = `${url}&${key}=${value}`;
} else {
const re = `(\\?|&|\#)${key}([^&|^#]*)(&|$|#)`;
url = url.replace(new RegExp(re), '$1' + key + '=' + value + '$3');
}
}
if (type === 'location') {
location.href = url;
}
if (type === 'pushState') {
window.history.pushState({}, '', url);
}
}
6. 二维码生成
代码如下(示例):
// 下载依赖 "qrcode.react": "^1.0.1",
<QRCode
value={`${count}`} // 扫描的值
size={237}
style={{ margin: 'auto', padding: '10px' }}
/>
7. 编写 WebSocket 客户端应用
代码如下(示例):
// 博客地址
location.href ='https://blog.csdn.net/weixin_52022129/article/details/125616373?spm=1001.2014.3001.5501'
8. H5唤起应用商店或者应用市场
代码如下(示例):
// 博客地址
location.href ='https://blog.csdn.net/weixin_52022129/article/details/125615570?spm=1001.2014.3001.5501'
9. 图形验证码组件
代码如下(示例):
// 博客地址
location.href ='https://blog.csdn.net/weixin_52022129/article/details/125620158?spm=1001.2014.3001.5501'