javascript中简单实用的小技巧

数组去重

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

从url 获取参数转变为对象

const getParams = URL => {
 JSON.parse(`{"${decodeUrl(URL.split(",")[1]).replace(/"/g, '\\"').replace(/&/g,'","').replace(/=/g, '":"')}"}`)
}

检查对象是否为空

const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;

获取数据类型

const getType = data => {
	const match = Object.prototype.toString.call(data).match(/(\w+)]/)
	return match[1].toLocaleLowerCase()
}

深拷贝

const deepCopy = (obj, hash = new WeekMap()) => {
	if(obj instanceof Date) {
		return new Date(obj)
	}
	if(obj instanceof RepExp) {
		return new RegExp(obj)
	}
	if(hash.has(obj) {
		return hash.get(obj)
	}
	let property = Object.getOwnPropertyDescriptors(obj)
	let cloneObj = Object,create(Object.getPrototypeOf(obj), property)
	
	hash.set(obj, cloneObj)
	for(let key of Reflect.ownKeys(obj)) {
		if(obj[key] && typeof obj[key] === 'object') {
			cloneObj[key] = deepCopy(obj[key], hash)
		} else {
			cloneObj[key] = obj[key]
		}
	}
	return cloneObj
}

识别设备类型

const isMobile = () => {
	return !!navigator.usrAgent.match(/(iPhone|iPod|Android|iOS|iPad|Backerrry|WebOS|Symbian|Windows Phone|Phone/i)
}

合并对象

const objA = {
  X: 1
}
const objB = {
  Y: 2
}
const obj = Object.assign({}, objA, objB);

动态添加对象属性

let obj = {};
let index = 1;
obj[`portoType${index}`] = 'portoType1';

小结

  • 利用好filter reduce find map 等高级函数能够更简洁的实现想要的效果

参考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MaxLoongLvs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值