ts-物件陣列reduce-陣列轉物件陣列
阿新 • • 發佈:2022-05-06
將字串陣列轉化成{name:xxx,count:xxx}[]陣列的程式碼
#定義資料型別 interface CartInfo{ name:string, count:number } let rawItemArray:string[] = ["aa", "aa", "bb", "cc"] let cartArray = rawItemArray.reduce((resultArray:CartInfo[], curItem:string):CartInfo[]=>{ let existingItem = resultArray.find(it => it.name === item) if(!existingItem){ resultArray.push({name:item, count:1}) }else{ existingItem.count += 1 } return resultArray },[])
reduce是js中陣列的資料處理方法
- array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
- total:必需。初始值, 或者計算結束後的返回值。
- currentValue:必需。當前元素
- currentIndex:可選。當前元素的索引
- arr:可選。當前元素所屬的陣列物件。
- initialValue:可選。傳遞給函式的初始值
計算陣列中元素的和
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> </head> <body> <p>點選按鈕後對陣列元素進行四捨五入並計算總和。</p> <button onclick="myFunction()">點我</button> <p>陣列元素之和: <span id="demo"></span></p> <script> var numbers = [15.5, 2.3, 1.1, 4.7]; function getSum(total, num) { return total + Math.round(num); } function myFunction(item) { document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0); } </script> </body> </html>