zoukankan      html  css  js  c++  java
  • 数组求平方

    let arr = [1,2,3,4,5];
    //返回该数组的平方,不要修改原数组
    [1,4,9,16,25]

    数组的方法中不修改原数组的方法目前知道就是有四种

    map,concat,slice,filter 
    //不知道的可以查看api

    原始写的

    1 求平方肯定使用Math.pow
    2 //这里介绍Math.pow的方法含义
    3 
    4 平方求的是就是该数值的几次幂。用这个函数正好。
    5 
    6 //Math.pow(base, exponent) 
    7 
    8 返回base的exponent的平方
    9 Math.pow(2, 2) //返回2的2 次幂,4

    个人写的low代码

     1 var arr1 = [1, 2, 3, 4];
     2 
     3         function square(arr) {
     4             let newArr = arr.slice(0);
     5             let num = [];
     6             newArr.forEach(item => {
     7                 num.push(Math.pow(item, 2))
     8             })
     9             return num;
    10         }
    11         square(arr1)

    map不是有三个参数吗?用自己乘以自己不就等于平方了吗?修改之后的代码

    1 function square(arr) {
    2             return arr.map((item, index, arrList) => {
    3                 return item * item
    4             })
    5         }
    6 
    7 //因为map不会修改原数组返回值直接runturn出来,但是里面的计算如果没有return的话返回undefined,
    8 //runturn如果是个函数表达式,那么结果也要runtun出来

    如果以后不算2平方了咋办,还是用Math.pow,在此修改之后的代码

    1 function square(arr) {
    2             return arr.map((item, index, arrList) => {
    3                 return Math.pow(item, 2)
    4             })
    5         }

    两个return看着有点难受,修改一下,而且要的计算功能,位置(index),跟原数组(arrList),可以不用,这些都是可选参数。修改如下

    1 function square(arr) {
    2             return arr.map(item => Math.pow(item, 2))
    3         }

    es6的写法,5行代码,到目前的一行代码,可服用也算可以,代码量也少了,学到不少,记下思路过程

  • 相关阅读:
    libZPlay 音频编码解码器库
    C# PropertyGrid控件
    .netGDI+(转)
    (转)JITComplier、NGen.exe及.NET Native
    c# 特性/属性(Attribute) 以及使用反射查看自定义特性
    Fluent NHibernate系列文章
    Hibernate工作原理
    Orchard核心机制
    NHibernate和 FluentNHibernate
    极限编程之TDD
  • 原文地址:https://www.cnblogs.com/damai/p/7753452.html
Copyright © 2011-2022 走看看