• 数组求平方


    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行代码,到目前的一行代码,可服用也算可以,代码量也少了,学到不少,记下思路过程

  • 相关阅读:
    原码, 反码, 补码的基础概念和计算方法.
    QoS in RoCE
    TCP拥塞控制算法之NewReno和SACK
    intel xeon家族介绍
    Intel 处理器架构演进 转
    IP报文头详解
    高性能网络服务器编程:为什么linux下epoll是最好,Netty要比NIO.2好?
    tcp拥塞控制 tahoe reno new reno sack
    TCP/IP详解--拥塞控制 慢启动 快恢复 拥塞避免
    LTTng 简介&使用实战
  • 原文地址:https://www.cnblogs.com/damai/p/7753452.html
Copyright © 2020-2023  润新知