如何将数组的结果转换为Int?

时间:2017-05-05 00:33:00

标签: javascript arrays

我正在使用Ionic和Firebase构建应用。我有时会得到带小数的数字,我想将它们截断为整数。

这是我的代码:

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);
        }
          });

如何将 visitMaster 中的数字呈现为 int

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,

        ];

我希望每个值都是一个整数(大多数是x.5)

2 个答案:

答案 0 :(得分:1)

使用函数Math.floor()将浮点数截断为整数部分。并使用Array.prototype.map处理整个数组,。

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

答案 1 :(得分: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);
});