AngularJS将字符串数组转换为浮点数组
AngularJS convert array of strings into array of float
伙计们!我在将字符串数组转换为浮点值时遇到问题。如果我使用map(parseFloat(,我会得到int数字。40,78中的逗号有问题吗?这就是为什么我使用parseFloat函数时得到40的原因?
这是我想要转换的数组:
[["40,78","6,27","0,00",null,null,null,null,null,null,null,null,null,"35,87",null,null]];
我想把它转换成这个:
[[40.78,6.27,0.00,null,null,null,null,null,null,null,null,null,35.87,null,null]];
有人知道吗?提前感谢!
正如您所说。parseFloat()
只考虑具有.
字符的字符串作为浮点数,而不考虑,
。对于null
值,它还返回NaN
:
var arr = ["40,78","6,27","0,00",null,null,null,null,null,null,null,null,null,"35,87",null,null];
var res = arr.map(function(val) {
return val ? parseFloat(val.replace(',', '.')) : null;
});
console.log(res);
解决方案:
function MyCtrl($scope) {
$scope.array= ["40,78","6,27","0,00",null,null,null,null,null,null,null,null,null,"35,87",null,null]
for(var i=0; i<$scope.array.length; i++) {
if ($scope.array[i] !== null) {
$scope.array[i] = parseFloat($scope.array[i].replace(',','.'))
}
}
}
链接:http://jsfiddle.net/p2kpeptq/1/
var arr = ["40,78","6,27","0,00",null,null,null,null,null,null,null,null,null,"35,87",null,null];
arr.map(function(v) {
return v === null ? v : parseFloat(v.replace(",", "."));
});
在您的情况下,您有一个双数组。这取决于您是否执行额外的.map
调用或以其他方式处理外部数组的用例。
您有'40,78'逗号分隔的字符串,要解析为浮点,您需要有点分隔的字符串。例如:'40.78'和map(parseFloat(才能正常工作。
相关文章:
- 使用JS将数组转换为json对象
- 本地存储中的字符串到字节数组转换
- Javascript函数,用于将数组转换为“;2-元组”;
- php数组转换为javascript
- 在Javascript中将一个值和字符串数组转换为if语句
- 将数组转换为javascript格式的字符串
- 如何将数组转换为有效的json
- JSON数组转换为JS对象数组
- 如何将数组转换为映射
- JavaScript:将字符串数组转换为文本区域
- javascript |数组转换
- 数组转换为多个字符串
- Javascript将数组转换为字符串并使其反向输出
- 将Byte数组转换为Angularjs中的Base64字符串
- 将对象数组转换为与nodejs/pg/unnest兼容的数组
- 将Javascript数组转换为PHP数组
- 将数组转换为键值对
- 使用Ramda将对象数组转换为普通对象
- javascript将对象数组转换为字符串以存储在s3中
- 使用.join方法将数组转换为不带逗号的字符串