我有一个对象,其中包含object.Value
中的各种数字。我想循环并将object.Value
更新为2 decimal
个数字。这样做的正确和有角度的方式是什么?
这是我的数组:
$scope.calendar = [{"ContractMonths":[{"ContractDays":[{"Value":30},{"Value":25},{"Value":4}],"Value":8},{"ContractDays":[{"Value":5}],"Value":7},{"ContractDays":[{"Value":14}],"Value":5}],"Value":2015},{"ContractMonths":[{"ContractDays":[{"Value":15}],"Value":1}],"Value":2014},{"ContractMonths":[{"ContractDays":[{"Value":21}],"Value":3}],"Value":2012}]
我期待的结果是:
$scope.calendar = [{"ContractMonths":[{"ContractDays":[{"Value":30},{"Value":25},{"Value":04}],"Value":8},{"ContractDays":[{"Value":05}],"Value":07},{"ContractDays":[{"Value":14}],"Value":05}],"Value":2015},{"ContractMonths":[{"ContractDays":[{"Value":15}],"Value":01}],"Value":2014},{"ContractMonths":[{"ContractDays":[{"Value":21}],"Value":03}],"Value":2012}]
一些正当理由,我不想使用filters
任何人帮助我。 (这只是更新单个数字编号以添加0
以使其成为2个小数)
答案 0 :(得分:0)
JS不是stronly类型的语言支持Number
类,如果它处理零小数,将任何数字视为整数。
如果它们是浮动,它们将获得这些小数,否则它们将不会。好吧,您可能会关注小数精度和内容,但我们知道现在情况并非如此。
来自格式化的公寓,如果它们是整数,那么使用像 lodash 这样的东西来循环你的对象和嵌套数组以对值做某事是没有意义的。
使用过滤器
第一个例子:
因此,假设您想以十进制格式显示Number
value
:
{{value | number:2}}
因此,对于您的情况,我们假设您的模块名称为numbersApp
,您将定义numbersFormatFilter
自定义过滤器:
angular.module('numbersApp').filter('numbersFormatFilter', [function(){
return function (number) {
return String(number).match(/\d/g).length === 1 ? return "0" + number : String(number);
}]);
然后你可以使用HTML:
{{value | numbersFormatFilter}}