Использование фильтра Array # и String # replace.Работает путем сопоставления только 0 после точки.
/\.0+$/
- это простое регулярное выражение.Это может быть разбито на несколько разных частей.Внешние /
s (косые черты) указывают на то, что внутри него есть регулярное выражение.
Важная часть на самом деле \.0+$
.По умолчанию .
будет соответствовать любому символу, но в этом сценарии мы просто хотим найти числа, содержащие точку.Таким образом, мы escape
делаем это, используя \.
.
Как только у нас есть числа, которые содержат точку, нам нужно посмотреть, содержат ли они один или несколько нулей и только 0.
0+
будет соответствовать как минимум одному или нескольким 0.
$
гарантирует, что число оканчивается на 0.
tldr; По существу.\.0+$
будет соответствовать всему, что содержит .
и имеет по крайней мере один трейлинг 0 и заканчивается 0.
const data = ['123.001','400.000', '451.500', '1.520', '20.000', '300.210', '143.100']
const res = data.map(n=>{
return n.replace(/\.0+$/, "");
});
console.log(res);