怎样使你的 JavaScript 代码简单易读(推荐)
让我们先从怎样删除数组中的重复项这个简单问题开始。
复杂 - 使用 forEach 删除重复项
,我们新创建一个空数组,用在数组的每个元素上执行一次提供的函数。检查新数组中是否存在该值,如果不存在,则添加它。
function removeDuplicates(arr) { const uniqueVals = []; arr.forEach((value,index) => { if(uniqueVals.indexOf(value) === -1) { uniqueVals.push(value); } }); return uniqueVals; }
简单 - 使用 filter 删除重复项
用方法创建一个包含所有元素的新数组,通过提供的函数进行测试。基本上我们只需要迭代数组,并检查当前元素在数组中出现的第一个位置是否和当前位置相同。,这两个位置对于重复元素来说是不同的。
function removeDuplicates(arr) { return arr.filter((item, pos) => arr.indexOf(item) === pos) }
简单 - 使用 Set 删除重复项
ES6 提供了 对象,这使事情变得更加容易。 Set 仅允许存在唯一值,所以当你传入数组时,它会自动删除重复的值。
,如果你需要一个包含唯一元素的数组,为什么不一开始就用 Set 呢?
function removeDuplicates(arr) { return [...new Set(arr)]; }
接下来让我们解决第二个问题写一个函数,向该函数传入一组非负整数,其中的值各不不同,要求使它们连续,并返回缺失的数字个数。
对于const arr = [4,2,6,8],输出应为
countMissingNumbers(arr)= 3
你可以看到 3,5 和 7 是缺失的。
复杂 - 使用 sort 和 for 循环解决
要获得最小和最大的数字,我们需要用用 sort方法按升序进行排序来达到这个目的,然后从最小的数字循环到最大的数字。每次检查数组中是否存在应该出现的序号,如果不存在,就对计数器加一。
function countMissingNumbers(arr) { arr.sort((a,b) => a-b); let count = 0; const min = arr[0]; const max = arr[arr.length-1]; for (i = min; i<max; i++) { if (arr.indexOf(i) === -1) { count++; } } return count; }
简单 - 使用 Math.max 和 Math.min 求解
这个解决方案有一个简单的解释Math.max()函数返回数组中最大的数字,而Math.min() 返回数组中最小的数字。
,如果没有丢失数字,我们能知道数组中有多少个数字。所以可以用以下公式 maxNumber - minNuber + 1,并用这个结果减去数组长度,得到的差就是缺失数字的个数。
function countMissingNumbers(arr) { return Math.max(...arr) - Math.min(...arr) + 1 - arr.length; }
一个问题是检查字符串是否为回文。所谓 回文 是一个从左到右和从右到左读起来都一样的字符串。
复杂 - 使用 for 循环检查
这个方法的循环从字符串的第一个字符开始,一直到字符串长度的一半。字符串中一个字符的索引是 string.length-1,倒数第二个字符的索引是string.length-2,依此类推。所以在这里我们检查从左边开始的指定索引处的字符是否等于右边指定索引处的字符。如果它们不相等,就返回false。
function checkPalindrome(inputString) { let length = inputString.length for (let i =0; i<length / 2; i++) { if (inputString[i] !== inputString[length - 1 -i]) { return false } } return true }
简单 - 用 reverse 和 join 检查
我认为这个解决方案简单到不需要解释,因为代码本身说明了一切。我们只需使用从字符串创建一个数组,然后数组,用方法将其转换为字符串,并与原始字符串进行比较。
function checkPalindrome(string) { return string === [...string].reverse().join(''); }
保持简单!
当有更简单的方法时,为什么要搞得那么复杂?希望你能从这篇文章中学到一些很有意思的思路。祝你有一个美好的编码时间,尽量不要让生活中简单的事情复杂化。
以上所述是长沙网络推广给大家介绍的怎样使你的 JavaScript 代码简单易读详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程