JS面试练习题
JS面试练习题,不定时更新
SmallTeddy
('b' + 'a' + + 'a' + 'a').toLowerCase()
展开
-
调整数据结构(非递归方式),从一层数据结构到三层数据结构
1、一层数据结构示例:[{ name: '', id: '', status: '' }],其中name对应itemText,id对应itemStyle,status对应isDefault,isShow不要。 let shopLabelItemList = [ { isDefault: "0", isShow: "1", itemStyle: "1000763785220278474", itemText: "全部标签" }, { isDefault: "1", isSh原创 2021-05-12 09:36:02 · 1587 阅读 · 0 评论 -
算法题中常用的JavaScript方法笔记(持续更新)
一、数字类型1、数字类型转字符串类型1.1 加号let num = 11;num+'' // '11'1.2 toString()方法let num = 11;num.toString() // '11'1.3 String()方法let num = 11;String(num) // '11'2 数字类型转布尔类型let num = 11;!!num // true!num // false注意当num原创 2021-05-12 09:12:26 · 1942 阅读 · 6 评论 -
JavaScript中,一行代码对数组能做什么?(持续更新)
1、添加元素1.1 从后添加,push方法let arr = [1, 2, 3];arr.push(4); // [1, 2, 3, 4]1.1 从前添加,unShift方法1、扁平化1.1 flat方法flat()方法创建一个新数组,传入Infinity参数,所有子数组元素都以递归方式连接到该数组中,直到达到指定的深度为止。const arr = [1, 2, [3, 4, [5, 6, [7, 8, [9, [ 10, 11, 12, [ 13原创 2021-04-14 15:19:06 · 1427 阅读 · 1 评论 -
js求两个数的最大公约数
计算两个或两个以上数字/数字数组的最大公约数。helperGcd 函数使用递归。基本情况是,当 y 等于 0 的情况下,返回 x 。否则,返回 y 的最大公约数和x / y的其余数。功能代码:const gcd = (...arr) => { let data = [].concat(...arr); const helperGcd = (x, y) => (!y ? x : gcd(y, x % y)); return data.reduce((a, b) => hel原创 2021-03-16 17:11:28 · 2008 阅读 · 0 评论 -
使用Array.prototype.reduce()结合的comparator函数来获取数组中的适当的元素
在应用提供的函数设置比较规则之后,返回数组的最小值/最大值。使用Array.prototype.reduce()结合的comparator函数来获取数组中的适当的元素。省略第二个参数,comparator以使用默认参数,该参数返回数组中的最小元素。const reduceWhich = (arr, comparator = (a, b) => a - b) => arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));原创 2021-03-04 10:18:02 · 1761 阅读 · 1 评论 -
JS中Date日期Invalid Date报错问题解决方法
使用new Date(time)或者moment(time)时,有时会出现Invalid Date报错。这是因为转化的时间戳要求13位,而后端有时会返回10位。所以这里要处理一下时间戳。new Date(1000 * time) moment(1000 * time)原创 2021-01-04 11:07:48 · 26371 阅读 · 0 评论 -
JavaScript中数组排序比较问题
考虑以下数组。在不同的排序条件中会输出什么? const arr1 = ['a', 'b', 'c']; const arr2 = ['b', 'c', 'a']; console.log( arr1.sort() === arr1; arr2.sort() == arr2; arr1.sort() === arr2.sort(); ); 答案: true, true, false这里有几个概念在起作用。首先,数组 sort 方法对原始数组进行排序.原创 2020-10-09 17:00:05 · 1831 阅读 · 0 评论 -
为什么你应该在相等比较中使用 Object.is()
我们都知道 JavasSript 是弱类型的,并且当我们使用 == 作比较时,在一些情况下由于类型转换或者说“把两个操作数中的一个转换成另一个,然后在比较”,会出现意想不到的结果。0 == ' ' //truenull == undefined //true[1] == true //true因此 JavaScript 中给我们提供了全等操作符 ===, 它比不全等操作符更加严格并且不会发生类型转换。但是用=== 来进行比较并不是最好地解决方案。你可能会得到:NaN === N原创 2020-09-28 10:04:15 · 2345 阅读 · 0 评论 -
JavaScript判断数据类型
1、定义检测数据const num = 123;const str = 'aaa';const bool = true;const arr = [1, 2];const json = {name:'aaa', num:111};const func = () => console.log('function');const und = undefined;const nul = null;const date = new Date();const reg = /[a-z原创 2020-09-27 10:06:04 · 1324 阅读 · 0 评论 -
二叉树的前序、中序和后序遍历
1、二叉树二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分 。二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。2、定义二原创 2020-09-22 16:02:51 · 3695 阅读 · 0 评论 -
Creating multiline strings in JavaScript (JS中字符串换行问题)
QI have the following code in Ruby. I want to convert this code into JavaScript. what’s the equivalent code in JS?text = <<"HERE"ThisIsAMultilineStringHEREA-1ECMAScript 6 (ES6) introduces a new type of literal, namely template literals. Th原创 2020-09-22 11:47:22 · 3330 阅读 · 2 评论 -
请输出1到400之间所有数字中包含的1的个数
题目请输出1到400之间所有数字中包含的1的个数,比如数字1中包含了一个1, 数字11中包含了两个1,数字20中不包含1,数字1到21中共包含了13个1。function getCount() { }// 输出 180console.log(getCount())答案答案一这个答案比较经典,性能也算是很不错的了const sum1s = num => { let numstr if (!num) return 0 if (typeof num === 'str原创 2020-09-21 10:40:55 · 2993 阅读 · 0 评论