0
我的目標是找到「總數」在一個數組中。我需要幫助重構我的兩個JS函數到我的代碼中的一個多功能函數(JS array.reduce)
例如此陣列中的每個對象「arrayOfBikes」有一個「免費」屬性,我想查找「免費」的總值。
我想盡量減少我寫的代碼量。
是否可以寫一個函數,數組和項目數是要麼(免費或自行車),我一直在努力之下,以實現它,但我遇到了錯誤「getTotalNumberOfBikes()」
var arrayOfBikes = [
{name: "blackhall", lat: 53.3488, lng: -6.281637, free: 22, bikes: 8},
{name: "mbrown", lat: 53.341645, lng: -6.29719, free: 14, bikes: 8},
{name: "grant street", lat: 53.334123, lng: -6.265436, free: 3, bikes: 27},
{name: "gratstreet", lat: 53.339629, lng: -6.243778, free: 19, bikes: 4},
{name: "hardstreet", lat: 53.355473, lng: -6.264423, free: 14, bikes: 2}
];
function getTotalNumberOfFreeBikes(_array){
let arrayOfFreeBikes = [];
_array.forEach(function(element){
arrayOfFreeBikes.push(element.free);
});
return arrayOfFreeBikes.reduce(function(_previousValue, _currentValue){
return _previousValue + _currentValue;
}, 0);
}
function getTotalNumberOfBikes(_array){
let arrayOfBikes = [];
_array.forEach(function(element){
arrayOfBikes.push(element.bikes);
});
return arrayOfBikes.reduce(function(_previousValue, _currentValue){
return _previousValue + _currentValue;
}, 0);
}//getTotalNumberOfBikes
document.getElementById('freeBikes').innerHTML = 'Total free bikes : ' + getTotalNumberOfFreeBikes(arrayOfBikes);
document.getElementById('Bikes').innerHTML = 'Total bikes : ' + getTotalNumberOfBikes(arrayOfBikes);
function getTotalNumberOfBikes(_array, _item){
let arrayOfBikes = [], itemToCount = _array._item;
_array.forEach(function(element){
arrayOfBikes.push(itemToCount);
});
return arrayOfBikes.reduce(function(_previousValue, _currentValue){
return _previousValue + _currentValue;
}, 0);
}//getTotalNumberOfBikes
謝謝@Mark_M我真的很感激,你的代碼看起來很棒! – Jammi