常用原生JS自定义函数总结
这篇攻略将会介绍一些常用的原生JS自定义函数,包括数组、字符串、日期、对象等方面,让您更加深入地了解JS的各个方面。
数组
数组去重函数
function uniqueArr(arr) {
return Array.from(new Set(arr));
}
// 示例
const arr1 = [1, 2, 3, 2, 1];
console.log(uniqueArr(arr1)); // [1, 2, 3]
数组扁平化函数
function flatten(arr) {
return arr.reduce((acc, cur) =>
Array.isArray(cur) ? acc.concat(flatten(cur)) : acc.concat(cur), [])
};
// 示例
const arr2 = [1, [2, [3, 4], 5], 6];
console.log(flatten(arr2)); // [1, 2, 3, 4, 5, 6]
字符串
首字母大写函数
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
// 示例
const str1 = "hello world";
console.log(capitalize(str1)); // "Hello world"
字符串翻转函数
function reverseStr(str) {
return str.split("").reverse().join("");
}
// 示例
const str2 = "hello world";
console.log(reverseStr(str2)); // "dlrow olleh"
日期
获取当前时间戳
function getCurrentTimestamp() {
return new Date().getTime();
}
// 示例
console.log(getCurrentTimestamp()); // 1642117182692
自定义时间格式化函数
function formatDate(date, fmt) {
let o = {
"M+": date.getMonth() + 1,
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds(),
"q+": Math.floor((date.getMonth() + 3) / 3),
"S": date.getMilliseconds()
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (let k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
// 示例
const date = new Date();
console.log(formatDate(date, "yyyy-MM-dd hh:mm:ss.S")); // "2022-01-14 10:32:16.083"
对象
判断空对象函数
function isEmptyObject(obj) {
return Object.keys(obj).length === 0;
}
// 示例
const obj1 = {};
console.log(isEmptyObject(obj1)); // true
const obj2 = { name: 'Alice' };
console.log(isEmptyObject(obj2)); // false
深复制对象函数
function deepCopy(obj) {
let newObj = Array.isArray(obj) ? [] : {};
for(let key in obj) {
if(obj.hasOwnProperty(key)) {
newObj[key] = typeof obj[key] === 'object' ? deepCopy(obj[key]) : obj[key];
}
}
return newObj;
}
// 示例
const obj3 = { name: 'Alice', age: 20, hobbies: ['reading', 'swimming'] };
const obj4 = deepCopy(obj3);
obj4.hobbies.push('playing');
console.log(obj3.hobbies); // ['reading', 'swimming']
console.log(obj4.hobbies); // ['reading', 'swimming', 'playing']
通过上面的示例说明,可以看出每个函数的用法和具体实现,避免了对函数理解上的模糊。这也只是JS中一些常用的自定义函数总结,关于JS还有很多非常实用的函数和功能,需要我们不断学习和探索。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:常用原生js自定义函数总结 - Python技术站