常用原生js自定义函数总结

yizhihongxing

常用原生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技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 探讨JavaScript语句的执行过程

    我们来详细讲解一下“探讨JavaScript语句的执行过程”的完整攻略: 什么是JavaScript语句的执行过程? 在JavaScript中,语句的执行过程是指将代码逐行解释并执行的过程,然后将执行结果返回到执行环境中。JavaScript语句执行的过程是从上到下进行的。 在执行JavaScript代码时,代码的执行被分为两个步骤:编译和执行。编译是指将代…

    JavaScript 2023年5月18日
    00
  • isArray()函数(JavaScript中对象类型判断的几种方法)

    下面是关于isArray()函数以及JavaScript中对象类型判断的几种方法的完整攻略。 1. isArray()函数 isArray()是JavaScript中的一个内置方法,用来判断一个对象是否是数组。它返回一个布尔值,为true表示对象是数组,为false表示对象不是数组。下面是isArray()函数的语法: Array.isArray(obj) …

    JavaScript 2023年6月10日
    00
  • 详解Js 根据文件夹目录获取Json数据输出demo

    下面是详解 “JS 根据文件夹目录获取 Json 数据输出 demo” 的完整攻略。 1. 概述 本攻略主要讲解如何使用 JS 根据文件夹目录获取 json 数据,最终输出到页面中。具体实现方式是对文件夹目录进行遍历,生成对应的 json 数据,然后输出到页面中。 2. 准备工作 在开始之前,需要准备一些开发环境和依赖: Node.js,用于在后台生成 js…

    JavaScript 2023年5月27日
    00
  • javascript与css3动画结合使用小结

    为了让大家更好地理解“javascript与css3动画结合使用小结”,我将详细阐述攻略的步骤和示例说明。 攻略步骤 步骤1:制定动画效果计划 在使用JavaScript和CSS3组合制作动画效果之前,您需要先确认您所需要的动画效果,比如运动的方向、速度、倍率等等。 步骤2:编写CSS3动画样式 接下来,根据您计划好的动画效果,您需要编写相应的CSS3动画样…

    JavaScript 2023年6月10日
    00
  • Javascript实现数组中的元素上下移动

    下面是“Javascript实现数组中的元素上下移动”的完整攻略: 1. 实现思路 首先需要获取要移动的元素和移动方向; 然后通过数组中splice方法实现元素位置的上移或下移; 最后需要对移动后的新数组进行操作。 2. 具体实现 2.1 上移元素 function arrayMoveUp(arr, index) { if (index == 0) { re…

    JavaScript 2023年5月27日
    00
  • javascript 注释代码的几种方法总结

    JavaScript 注释代码是为了在代码中加入一些标注或解释,方便程序员或其他人员阅读代码。注释代码在开发过程中起到了非常重要的作用。本文将详细讲解 JavaScript 注释代码的几种方法总结。 单行注释 使用单行注释的方法在注释行前加上双斜杠 “//”。单行注释只会注释单独一行代码。例如: var name = "张三"; // 定…

    JavaScript 2023年5月27日
    00
  • JavaScript将数字转换成大写中文的方法

    将数字转换成大写中文是个很实用的功能,在前端开发中经常会遇到这样的需求。以下是详细的攻略: 方案一:使用中文数字字典映射 将数字转换成大写中文可以先通过一个中文数字字典进行映射,然后依次读取数字,并获取对应的中文数字,最后将其拼接成一个字符串即可。 以JavaScript为例,可以编写以下代码: function convertToChinese(num) …

    JavaScript 2023年6月11日
    00
  • js Math数学简单使用操作示例

    下面是关于“js Math数学简单使用操作示例”的完整攻略。 一、Math对象概述 JavaScript的内置对象之一是Math对象,它包含了许多常见的数学函数和常量。Math主要对数字进行操作,例如数学运算、幂运算、三角函数等。 二、Math对象中的常用方法 下面是 Math 对象中一些常用方法的介绍: 1. Math.floor() Math.floor…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部