JavaScript 是一门非常重要的编程语言,具有广泛的应用。在网上,有很多有趣的JavaScript 单行程序,它们虽然只有一行代码,但是实现的功能很有趣。接下来,我来为大家详细讲解 “17个JavaScript 单行程序”的完整攻略,希望对大家学习JavaScript编程有所帮助。
先列出这 17 个单行程序:
-
在控制台输出一个笑脸 ?
-
反转字符串
-
统计字符串中字符出现的次数
-
输出斐波那契数列
-
输出质数
-
判断回文字符串
-
模拟数组 reduce 方法
-
模拟数组 filter 方法
-
模拟数组 map 方法
-
实现幂运算
-
实现阶乘
-
实现搜索算法
-
输出 99 乘法表
-
实现随机字符串
-
实现排序算法
-
实现数组去重
-
实现数组拍扁
接下来,我将会详细讲解这些单行程序,其中涉及到的代码块将使用标准的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技术站