2017-05-05 51 views
-2

我正在用離子和Firebase構建一個應用程序。我有數字有時有小數,我想截斷它們爲整數。如何將數組的結果轉換爲Int?

這裏是我的代碼:

var visitMaster = [0, 0, 0, 0, 0, 0, 0]; 

     $timeout(function(){ 

      var visitRef = firebase.database().ref('/business/' + myId + '/visits/'); 

      // LAST HOUR 
      visitRef.orderByChild("visit").startAt(nowMinusOne).endAt(now).once("value", function(snapshot) { 
      var visitOneHour = (snapshot.numChildren()/2); 
      if (visitOneHour === ""){ 
      visitMaster.splice(6, 1, 0); 
     } else { 
      visitMaster.splice(6, 1, visitOneHour); 
     } 
      }); 

如何呈現這些數字在我visitMasterINT

UPDATE:陣列的每個值應該去的圖表(巴)在,所以我顯示這種方式:

//WE PUT IT IN THE CHART: 
     $scope.labels = ["H-6", "H-5", "H-4", "H-3", "H-2", "H-1", "Now"]; 
     $scope.data = [ 
      visitMaster, 

     ]; 

我想每個值是一個整數(最他們中有十.5)

+1

[如何小數轉換爲整數的一個問題已經在這裏找到答案(http://stackoverflow.com/questions/596467/how-do-i-convert-a- float-number-to-a-whole-number-in-javascript) –

+0

vistMaster.map(Number)也許? –

+0

您是否試圖從數組中總計總值? – fubar

回答

0

如果你想的visitMaster價值總結爲一個整數值,你可以做到以下幾點:

對於ES5。

var total = visitMaster.reduce(function (total, visit) { 
    return total + visit; 
}, 0); 

或者如果使用ES6。

let total = visitMaster.reduce((total, visit) => total + visit, 0); 

然後轉換成整數,我建議使用Math.ceil,這將舍入值到下一個整數。

total = Math.ceil(total); 

更新 要只是你的數組中的相互轉換價值爲整數,只需使用Array.prototype.map功能。感謝@Barmar進行更正。

visitMaster = visitMaster.map(function (value) { 
    return Math.floor(value); // or Math.ceil(value); 
}); 
+0

「有時我想將它們截斷爲整數。」這是'parseInt',而不是'Math.ciel' –

+0

你好,我添加了一個更新我的問題,也許它會更清晰?預先感謝您 – FrenchyNYC

+0

@CoryDanielson我在'parseInt'上建議'Math.ceil',因爲它看起來像值是訪問持續時間。因此,在'parseInt'將舍入的情況下,這不需要顯示訪問所需的時間,而使用'Math.ceil'則舍入。 – fubar

1

使用函數Math.floor()將浮點數截斷爲其整數部分。並使用Array.prototype.map來處理整個陣列。

visitMaster = [1, 1.5, 2.1, 2.8, 111.345]; 
 
visitMaster = visitMaster.map(Math.floor); 
 
console.log(visitMaster);