JavaScript 中連續數字的和
假設我們必須編寫一個函式,該函式接受一個數組,並返回另一個數組,其中連續的相似數字相加。
例如 −
const array = [1, 5, 5, 5, 8, 8, 9, 1, 4, 4, 2];
輸出應為 −
[1, 15, 16, 9, 1, 8, 2]
所有連續的 5 相加為 15,然後 2 個連續的 8 相加為 16,以此類推 4 相加為 8。
因此,讓我們編寫此函式的程式碼。我們將在此處使用 Array.prototype.reduce() 方法來縮減原始陣列並同時構造一個新陣列。
例項
const array = [1, 5, 5, 5, 8, 8, 9, 1, 4, 4, 2];
const sumConsecutive = (array) => {
return array.reduce((acc, val) => {
if (acc.last === val) {
acc.arr[acc.arr.length - 1] += val;
} else {
acc.arr.push(val);
acc.last = val;
}
return acc;
}, { arr: [], last: undefined }).arr;
};
console.log(sumConsecutive(array));輸出
控制檯中的輸出將為 −
[ 1, 15, 16, 9, 1, 8, 2 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP