Как отобразить одну ди git после десятичной точки вместе с их единицами для чисел, используя angualr js? - PullRequest
1 голос
/ 14 января 2020

У меня есть следующий код:

Контроллер:

<div ng-controller="MainCtrl">
    <ul>
        <li ng-repeat="value in values ">{{value | number:1}}</li>
    </ul>
</div>

Javascript:

var app = angular.module('myApp', []);

function MainCtrl( $scope ) {
    $scope.values = [ '1', '8.634', '5.25', '(18.26%)', '(56.23pp)', '(10.28)' ];
}

Если я запускаю приведенный выше код, я получаю вывод, как показано ниже:

1.0
8.6
5.3

, но я хочу вывод, как показано ниже:

1.0
8.6
5.2
18.2%
56.2pp
10.2

т.е. я хочу получить значение (я) вверх на одну ди git (точность) после десятичной запятой вместе с их единицами, а также %, pp, et c. Пожалуйста, дайте мне знать, чтобы сделать это либо с помощью angularjs. Спасибо.

Создано Скрипка .

1 Ответ

1 голос
/ 14 января 2020

Я почти уверен, что это можно сделать лучше с помощью регулярных выражений, но, похоже, это работает нормально.

var app = angular.module('myApp', []);
app.controller("MainCtrl", MainCtrl);

function getNumberAndPostfix(inputString) {
    let number = '';
    let postfix = '';
    const characters = inputString.split('');
    for (const character of characters) {
        if ('()'.includes(character)) {
            continue;
        }
        if ('0123456789.'.includes(character)) {
            number += character;
            continue;
        }
        postfix += character;
    }
    return { number, postfix };
}

function MainCtrl($scope) {
    const inputValues = ['1', '8.634', '5.25', '(18.26%)', '(56.23pp)', '(10.28)'];
    $scope.values = inputValues.map(string => getNumberAndPostfix(string));
}
<script src="//unpkg.com/angular/angular.js"></script>
<div ng-app="myApp" ng-controller="MainCtrl">
    <ul>
        <li ng-repeat="value in values">{{value.number | number:1}}{{value.postfix}}</li>
    </ul>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...