17个JavaScript 单行程序

yizhihongxing

JavaScript 是一门非常重要的编程语言,具有广泛的应用。在网上,有很多有趣的JavaScript 单行程序,它们虽然只有一行代码,但是实现的功能很有趣。接下来,我来为大家详细讲解 “17个JavaScript 单行程序”的完整攻略,希望对大家学习JavaScript编程有所帮助。

先列出这 17 个单行程序:

  1. 在控制台输出一个笑脸 ?

  2. 反转字符串

  3. 统计字符串中字符出现的次数

  4. 输出斐波那契数列

  5. 输出质数

  6. 判断回文字符串

  7. 模拟数组 reduce 方法

  8. 模拟数组 filter 方法

  9. 模拟数组 map 方法

  10. 实现幂运算

  11. 实现阶乘

  12. 实现搜索算法

  13. 输出 99 乘法表

  14. 实现随机字符串

  15. 实现排序算法

  16. 实现数组去重

  17. 实现数组拍扁

接下来,我将会详细讲解这些单行程序,其中涉及到的代码块将使用标准的Markdown 格式进行展示。

怎么在控制台输出一个笑脸 ?

console.log(String.fromCodePoint(0x1f60a));

这段代码使用了 String.fromCodePoint 函数来显示U+1F60A码点的Unicode字符,即笑脸。函数的参数是码点的值,它和十进制、八进制和十六进制值一样,都是可以直接转换为数字的。

怎么反转字符串

console.log("hello".split("").reverse().join(""));

这段代码实现字符串的反转,用到了JavaScript数组对象的 split()reverse()join() 方法。首先将字符串转化为数组,再调用数组实例的 reverse() 方法进行反转,最后使用 join() 方法将字符重新组合成字符串。结果输出的是整个字符串反转后的结果。

怎么统计字符串中字符出现的次数

console.log("javascript is awesome".split("").reduce((o, x) => {o[x] ? o[x]++ : o[x] = 1; return o}, {}));

这段代码用reduce()方法实现了字符串中每个字符出现的频率计数,并返回一个对象,键名为字符,键值为出现频率,其中使用了纯函数式编程的写法。

怎么输出斐波那契数列

console.log([...Array(30)].reduce((acc, cur, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i), []));

这段代码用reduce()方法来实现 30 个斐波那契数列值的输出,并把这些值存储在一个数组中,其内部依赖值通过求和来得到。

怎么输出质数

console.log([...Array(101)].slice(2).map((x,i)=>i+2).filter(x=>[...Array(x).keys()].slice(2).every(y=>x%y!==0)));

这段代码用到了filter()方法,获取了从2到100之间的所有质数。处理过程以“筛法”的方式实现。

怎么判断回文字符串

console.log("level" == [..."level"].reverse().join(""));

这段代码用到了字符串的reverse()方法,将字符数组反转,然后把排序前和排序后的数值进行对比,判断是否为回文字符串。

怎么模拟数组 reduce 方法

console.log([1,2,3].reduce((a,b)=>a+b));

reduce()方法已经成为一个常用的数组方法之一。它接受两个参数,一个是处理结果的回调函数,另一个是初始值。这段代码展示了如何在数组中使用累加器,实现对数组元素的求和。

怎么模拟数组 filter 方法

console.log([1,2,3,4,5,6,7,8].filter(x=>x%2==0));

这段代码模拟了数组中filter()的方法,筛选出其中的偶数。

怎么模拟数组 map 方法

console.log([1,2,3].map(x => x * 2));

这段代码对数组中的每一个元素执行一个操作:将其乘以2, 使用了列表解析的思想,从而实现了map()方法的效果。

怎么实现幂运算

console.log(Math.pow(2, 10));
console.log(2 ** 10);

幂运算是非常常用的一个运算,上面的代码展示了两种实现方式:一种是使用Math库提供的pow()方法,另一种是ES2016引入的运算符**

怎么实现阶乘

console.log([...Array(6).keys()].slice(1).reduce((x, y) => x * y, 1));

该段核心代码使用了消耗性的reduce()方法,实现了阶乘运算。

怎么实现搜索算法

console.log([1, 2, 3, 4].indexOf(3));

这段代码使用的是 JavaScript 原生的indexOf()方法实现的,该方法返回一个数组中指定元素的位置,不存在时返回 -1。

怎么输出 99 乘法表

console.log([...Array(9)].map((x,i)=>[...Array(i+1).keys()].slice(1).map(y=>`${y}*${i+1}=${y*(i+1)}`).join("\t")).join("\n"));

这段代码利用了Array()map(),循环地将乘积相乘并输出成若干一维的字符串,最终通过join()方法组合为一个字符串,实现了输出 99 乘法表的功能。

怎么实现随机字符串

console.log([...Array(32)].map(i=>(~~(Math.random()*36)).toString(36)).join(""));

使用了Math.random()和位运算操作符~~实现了伪随机的效果,并且通过相应的转换来输出一个32位的字符串。

怎么实现排序算法

console.log([34, 7, 23, 32, 5, 62].sort((a,b)=>a - b));

这段代码使用了JavaScript中sort()方法的回调函数,在排序时选择比较功能比直接进行常规比较更加灵活。

怎么实现数组去重

console.log([...new Set([1, 2, 3, 2, 1, 4, 2])]);

这段代码使用了ES6中新增的Set数据结构,将数组转化为Set对象,然后通过展开操作符将Set转换回数组。

怎么实现数组拍扁

console.log([1, [2, [3, [4, 5]]]].flat(Infinity));

对于给定的数组,上面的代码展示了如何实现拍扁操作。对于长度为小于或等于1的数组(包括字符串和数组),我们无需进行任何操作。对于其他情况,使用flatter()展平层级直到数组成员全部为基本类型的值或空值。

以上就是关于这 17 个 JavaScript 单行程序的完整攻略,希望可以为大家在学习 JavaScript 编程过程中提供帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:17个JavaScript 单行程序 - Python技术站

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

相关文章

  • json数据处理技巧(字段带空格、增加字段、排序等等)

    JSON数据处理技巧 JSON是一种轻量的数据交换格式,在我们日常的开发中,经常会用到JSON。但是有时候会遇到一些问题,例如字段带空格、需要增加字段、需要排序等等。这篇文章将介绍一些JSON数据处理的技巧。 字段带空格的问题 JSON中的字段不能包含空格,如果字段名中有空格,就需要使用引号将字段名括起来,例如: { "first name&quo…

    JavaScript 2023年5月27日
    00
  • js数组去重常见的方法汇总(7种)

    下面我将详细讲解“js数组去重常见的方法汇总(7种)”。 一、引言 在JavaScript的实际开发中,经常会遇到需要对数组进行去重操作的情况。而JavaScript提供了多种方法来进行数组去重操作,下面将详细介绍七种常见的方法。 二、使用Set Set是ES6新引入的一种集合数据类型,它可以存储任意类型的唯一值。使用Set可以很方便地实现数组去重,只需要将…

    JavaScript 2023年5月27日
    00
  • javascript实现倒计时跳转页面

    实现倒计时跳转页面,一般分为以下几个步骤: 1.确定倒计时的截止时间,并获取当前时间。 2.根据截止时间和当前时间,计算出倒计时剩余的时间。 3.将倒计时剩余时间格式化为“时 分 秒”形式,并将它显示到页面上。 4.如果倒计时剩余时间大于0,继续每秒更新倒计时时间并显示。 5.如果倒计时剩余时间小于0,跳转到目标页面。 下面是具体步骤: 1.确定倒计时截止时…

    JavaScript 2023年6月11日
    00
  • 微信小程序wx.request的简单封装

    我可以为您提供“微信小程序wx.request的简单封装”的完整攻略。请注意,由于涉及到代码以及markdown格式,我将使用代码块展示相关示例。 1. 简介 在微信小程序中,通过 wx.request 可以发送网络请求。但使用 wx.request 还需要处理错误、重试等问题。因此,封装 wx.request 可以更方便地处理网络请求相关的问题。 2. 封…

    JavaScript 2023年5月27日
    00
  • Javascript toFixed 方法

    以下是关于JavaScript toFixed方法的完整攻略。 JavaScript toFixed方法 JavaScript toFixed()方法是Number对象的一个方法,用于将数字转换字符串,并保留指定的小数位数。我们可以使用toFixed()方法来格式化数字,使其符合我们的需求。 下面是一个使用()方法的示例: var num = 3.14159…

    JavaScript 2023年5月11日
    00
  • 超全面的JavaScript开发规范(推荐)

    超全面的JavaScript开发规范 JavaScript规范是多数开发者应遵守的一些指导原则,可以提高代码的可读性、可维护性和可扩展性。在本文中,将介绍一个超全面的JavaScript开发规范,以及如何使用它来提高你的代码质量。 1. 命名规范 1.1 变量命名规范 变量名应该具有描述性,能够清楚地反映变量所代表的内容。变量名应采取小写字母,单词之间使用下…

    JavaScript 2023年5月17日
    00
  • JavaScript弹出对话框的三种方式

    当我们想向用户展示一些提示信息时,经常会使用JavaScript弹出对话框。JavaScript弹出对话框有三种方式,分别为alert()、confirm()和prompt()。 alert() 使用alert()方法弹出对话框可以显示警告信息,警告信息通常只需要用户确认即可。下面是alert()的语法: alert("警告信息"); 下…

    JavaScript 2023年5月27日
    00
  • 实用的JS表单验证提示效果

    要实现“实用的JS表单验证提示效果”,我们需要以下步骤: 1. 编写HTML代码 我们需要为表单元素添加id或class属性,以便我们可以使用JavaScript代码对其进行操作。 <form id="myForm"> <label for="username">用户名:</label&g…

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