數組求平方


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行代碼,到目前的一行代碼,可服用也算可以,代碼量也少了,學到不少,記下思路過程

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM