2017-05-05 30 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);