毫无疑问,JavaScript是最流行的Web开发编程语言之一。无论您使用的是React、Vue还是Angular,它都只是JavaScript。围绕JS开发了一个广泛而重要的生态系统,提供了无数的框架和库来帮助您更快地开发应用程序。但有时最好退后一步,尝试了解如何在没有图书馆的情况下做事。看看下面的代码片段,以优雅的方式解决简单的问题,并将这些知识用于日常项目情况或准备编码面试。1.反转一个字符串在这个例子中,我们使用扩展运算符(...),Array的reverse方法和String的join方法来反转给定的字符串。contreverseString=string=>[...string].reverse().join('');//示例reverseString('javascript');//'tpircsavaj'reverseString('good');//'doog'2.计算一个数的阶乘为了计算给定数的阶乘,我们使用箭头函数和嵌套的三元运算符。constfactoriaOfNumber=number=>number<0?(()=>{thrownewTypeError('Nonegativenumbersplease');})():number<=1?1:number*factoriaOfNumber(number-1);//例子factoriaOfNumber(4);//24factoriaOfNumber(8);//403203。将数字转换为数值数组。constconvertToArray=number=>[...`${number}`].map(el=>parseInt(el));//示例convertToArray(5678);//[5,6,7,8]convertToArray(123456789);//[1,2,3,4,5,6,7,8,9]4.检查一个数是否是2的幂这很简单。我们检查数字是否是伪造的,并使用按位与运算符(&)来确定数字是否是2的幂。constisNumberPowerOfTwo=number=>!!number&&(number&(number-1))==0;//示例isNumberPowerOfTwo(100);//falseisNumberPowerOfTwo(128);//true5.从一个对象创建一个键值对数组在这个例子中,我们使用Object中的keys方法和Array中的map方法来映射Object的键并创建一个键/值对数组。constkeyValuePairsToArray=object=>Object.keys(object).map(el=>[el,object[el]]);//例子keyValuePairsToArray({Better:4,Programming:2});//[['Better',4],['编程',2]]keyValuePairsToArray({x:1,y:2,z:3});//[['x',1],['y',2],['z',3]]6.返回数组中最大的[Number]个元素为了从数组中返回最大的元素,我们使用了一个箭头函数,它接受数组和我们希望函数返回的元素数量。我们在Array中使用扩展运算符(...)以及排序和切片方法。请注意,如果我们不提供第二个参数,则number的默认值为1,因此只会返回一个最大的元素。constmaxElementsFromArray=(array,number=1)=>[...array].sort((x,y)=>y-x).slice(0,number);//示例maxElementsFromArray([1,2,3,4,5]);//[5]maxElementsFromArray([7,8,9,10,10],2);//[10,10]7。检查数组中的所有元素是否相等在这个简短的示例中,我们使用Array中的every方法来检查数组中的所有元素是否相等。我们基本上检查每个元素是否等于数组中的第一个元素。constelementsAreEqual=array=>array.every(el=>el===array[0]);//示例elementsAreEqual([9,8,7,6,5]);//falseelementsAreEqual([4,4,4,4,4]);//真8。返回两个数字的平均值在这个例子中,我们使用扩展运算符(...)和Array中的reduce方法来返回两个给定数字或数组值的平均值。ConstaverageOfTwoNumbers=(...numbers)=>numbers.reduce((accumulator,currentValue)=>accumulator+currentValue,0)/numbers.length;//例子averageOfTwoNumbers(...[6,7,8]);//7averageOfTwoNumbers(6,7,8,9);//7.59。返回两个或多个数字的总和要返回两个或多个给定数字或数组的总和,我们再次使用扩展运算符(...)和Array中的reduce方法。constsumOfNumbers=(...array)=>[...array].reduce((accumulator,currentValue)=>accumulator+currentValue,0);//示例sumOfNumbers(5,6,7,8,9.10);//45sumOfNumbers(...[1,2,3,4,5,6,7,8,9,10]);//5010。返回数字数组的幂集在最后一个示例中,我们要返回数字数组的幂集。因此,我们使用Array中的reduce、map和concat方法。constpowersetOfArray=array=>array.reduce((accumulator,currentValue)=>accumulator.concat(accumulator.map(el=>[currentValue].concat(el))),[[]]);//示例powersetOfArray([4,2]);//[[],[4],[2],[2,4]]powersetOfArray([1,2,3]);///[[],[1],[2],[2,1],[3],[3,1],[3,2],[3,2,1]]如您所见,使用JavaScript和一些ES6魔法解决这些任务并不总是它很难。
