ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

21 必须有 JavaScript 一衬里

2022-11-01 15:16:18  阅读:322  来源: 互联网

标签:字符 数组 播放 检测 转换


1. 反转字符串

const reverseString = (str) => str.split("").reverse().join("");
console.log(reverseString("hello guys!"));
// !syug olleh

2. 展平数组

const flattenArray = (arr, flattenLevel = 1) => arr.flat(flattenLevel);
console.log(flattenArray([1, 2, [3, 4]]));
// [1,2,3,4]
console.log(flattenArray([1, 2, [3, 4, [5]]], 2));
// [1,2,3,4, 5]

3. 随机播放数组

const shuffleArray = (arr) => arr.sort((a, b) => 0.5 - Math.random());
console.log(shuffleArray([1, 2, 3, 4, 5]));
// [2, 5, 4, 1, 3]

4. 获取随机布尔值

const getRandomBooleanValue = () => Math.random() >= 0.5;
console.log(getRandomBooleanValue());
// false
console.log(getRandomBooleanValue());
// true

5. 查找平均数组值

const getAverageValue = (numbers) =>
  numbers.reduce((total, currEl) => total + currEl, 0) / numbers.length;
console.log(getAverageValue([1, 2, 3, 4]));
// 2.5
console.log(getAverageValue([100, 900]));
// 500

6.检测暗模式

const darkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;

7. 滚动到页面顶部

const scrollToTop =() => window.scrollTo({top: 0, behavior: 'smooth'});

8.查找字符串中指定字符的数量

const getCharAmount = (string, char) => string.split(char).length - 1;
console.log(getCharAmount("hello", "l"));
// 2
console.log(getCharAmount("hello", "q"));
// 0

9. 重定向网址

const redirectUrl = url => location.href = url;
redirectUrl("https://youtube.com");

10. 检测数组是否为空

const isArrayEmpty = (arr) => !Array.isArray(arr) || !arr.length;
console.log(isArrayEmpty([1, 2]));
// false
console.log(isArrayEmpty([]));
// true

11. 从数组返回唯一值

const getUniqueArrayValues = (arr) =>
  arr.filter((i) => arr.indexOf(i) === arr.lastIndexOf(i));
console.log(getUniqueArrayValues([1, 2, 2, 3]));
// [1, 2, 3]

12. 从 DOM 获取选定的文本

const getSelectedText = () => window.getSelection().toString();

13. 检查表达式是否为数组

const isArray = (expression) => Array.isArray(expression);
console.log(isArray(1));
// false
console.log(isArray({ name: "Jaxongir" }));
// false
console.log(isArray(["JavaScript"]));
// false

14. Check a number if it's odd or even

const isOdd = (number) => number % 2 === 1;
console.log(isOdd(1));
// true
console.log(isOdd(2));
// false

15. Detect whether an element is in focus

const isElementFocussed = (element) => element === document.activeElement;

16. 将摄氏度转换为华氏度,反之亦然

const convertCelsiusToFahrenheit = (celsius) =>
  Math.floor((celsius * 9) / 5 + 32);
const convertFahrenheitToCelsius = (fahrenheit) =>
  Math.floor((fahrenheit - 32) * (5 / 9));

console.log(convertCelsiusToFahrenheit(21));
// 69
console.log(convertCelsiusToFahrenheit(-50));
// -58

console.log(convertFahrenheitToCelsius(33));
// 0
console.log(convertFahrenheitToCelsius(22));
// -6

17. 检查两个数组是否相同

const isArraysTheSame = (arr1, arr2) =>
  arr1.length === arr2.length &&
  arr1.every((val, index) => val === arr2[index]);
console.log(isArraysTheSame([1, 2], [1, 2]));
// true
console.log(isArraysTheSame([1, 2], [1, 3]));
// false

18.将第一个字符转换为大写

const convertFirstCharToUppercase = (str) =>
  `${str[0].toUpperCase()}${str.slice(1)}`;
console.log(convertFirstCharToUppercase("jaxongir"));
// Jaxongir

标签:字符,数组,播放,检测,转换
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有