几个单行JavaScript代码,提高代码效率

本文整理了非常有用的单行代码,这些需求都是在开发中非常常见的,用单行代码可以帮助你提高工作效率

数组去重

从数组中删除所有重复值,实现方式非常多,我们这里说最简单的方式,一行代码搞定! 

const uniqueArr = (arr) => [...new Set(arr)];

console.log(uniqueArr(['前端','js','c#','html','js','css','java','c#']));
//  ['前端', 'js', 'c#', 'html', 'css', 'java']

从URL获取参数并转为对象

 网页路径经常是:www.baidu.com?search=js&xxx=kkk 这种形式的,我们经常需要取参数,可以是第三方的 qs 包实现,如果你只是要实现取参数,这一句代码就可以实现。

const getParameters = URL => JSON.parse(`{"${decodeURI(URL.split("?")[1]).replace(/"/g,'\\"').replace(/&/g,'","').replace(/=/g,'":"')}"}`)
		
console.log(getParameters("https://www.google.com.hk/search?q=js+md&newwindow=1"));
// {q: 'js+md', newwindow: '1'}
		

 检查对象是否为空 

const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;
		isEmpty({})  //true
		isEmpty({a:"not empty"}) //false

反转字符串

反转字符串可以使用split 结合 reverse 和 join 的方法轻松实现

   const reverse = str => str.split('').reverse().join('');
		console.log(reverse('this is reverse')); 

检查设备类型

使用 navigator.userAgent 判断是移动设备还是电脑设备:

const judgeDeviceType = () => /Android|webOs|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent) ? "Mobile" : "PC";
	   
console.log(judgeDeviceType()); 

文字复制到剪切板

Clipboard API 它的左右操作都是异步的,返回 Promise 对象,不会造成页面卡顿。而且它可以将任意内容(比如图片)放入剪切板。

  const copyText = async (text) => await navigator.clipboard.writeText(text)
	   console.log(copyText('单行代码,前端世界'));

获取选定的文本

使用内置的 getSelection 获取用户选择的文本:

	const getSelectedText = () => window.getSelection().toString();
		console.log(getSelectedText()); //返回选中的内容

查询某天是否为工作日

我们自己写日历组件时经常会用到,判断某个日期是否为工作日;周一至周五为工作日

const isWeekday = (date) => date.getDay() % 6 !== 0;
		
console.log(isWeekday(new Date(2022,10,16))); 

计算数组平均值

const average = (arr) => arr.reduce((a,b) => a + b) / arr.length;
	   
console.log(average([1,9,18,36]));  //16

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值