我正在使用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)
答案 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);
});