Javascript 对JSON数据进行数学运算
我目前正在尝试对我的json数据进行一些数学运算。但这不是我想要的。我做了一个循环,因此计算适用于每一行(通过我使用angularJS的方式) 下面是我试图处理数据的代码部分:Javascript 对JSON数据进行数学运算,javascript,angularjs,json,Javascript,Angularjs,Json,我目前正在尝试对我的json数据进行一些数学运算。但这不是我想要的。我做了一个循环,因此计算适用于每一行(通过我使用angularJS的方式) 下面是我试图处理数据的代码部分: angular.module('recordService', []).factory('recordService', ['$http', function($http) { var url; var recordService = []; recordService.getAll = function(c
angular.module('recordService', []).factory('recordService', ['$http', function($http) {
var url;
var recordService = [];
recordService.getAll = function(callback) {
url = "http://localhost/app/www/database/json.php";
$http({
url: url
}).then(function(rs) {
callback(rs.data);
function logArrayElements(element, index, array) {
var thdi = rs.data[index].THDI1_avg;
console.log(thdi + 5);
}
rs.data.forEach(logArrayElements);
}, function(err) {
console.log(err)
})
}
正如您所看到的,我试图从数组中提取一个元素并向其中添加5个元素(这只是一个测试;我想稍后再做一些高级数学)。我可以在控制台中看到。log
这不是我想要的
例如,如果我的数据是10.25,当我想要15.25时,我得到10.255。你知道我做错了什么吗
提前感谢您需要将JSON数据转换为@epascarello提到的数字。JSON被序列化为字符串
function logArrayElements(element, index, array) {
var thdi = Number(rs.data[index].THDI1_avg);
console.log(thdi + 5);
}
您需要将JSON数据转换为@epascarello提到的数字。JSON被序列化为字符串
function logArrayElements(element, index, array) {
var thdi = Number(rs.data[index].THDI1_avg);
console.log(thdi + 5);
}
您得到10.255的原因是,因为您正在向字符串添加5 尝试:
关于非数字的更新: 有几种方法可以检查该值是否为数字 isNaN()
尝试/抓住
try{
console.log(parseFloat(thdi) + 5);
} catch(err) {
console.log("not a number");
}
编辑:不会给出所需的结果
typeof
if(typeof thdi === 'number') {
console.log("Is a number");
console.log(parseFloat(thdi) + 5);
} else {
console.log("not a number");
}
另见:
注意:如果thdi未定义,那么isNaN()将抛出一个错误。typeof将能够处理未定义的问题。得到10.255的原因是,您正在向字符串添加5 尝试:
关于非数字的更新: 有几种方法可以检查该值是否为数字 isNaN()
尝试/抓住
try{
console.log(parseFloat(thdi) + 5);
} catch(err) {
console.log("not a number");
}
编辑:不会给出所需的结果
typeof
if(typeof thdi === 'number') {
console.log("Is a number");
console.log(parseFloat(thdi) + 5);
} else {
console.log("not a number");
}
另见:
注意:如果thdi未定义,那么isNaN()将抛出一个错误。typeof将能够处理未定义的问题。您正在添加到字符串中….
parseFloat(thdi)+5
…另一个解决方案可能是:+thdi+5您正在添加到字符串中….parseFloat(thdi)+5
…另一个解决方案可能是:+thdi+5感谢您的快速回答。当我现在看到它时,似乎有点明显。但有一件事很奇怪:我在控制台中看到一些“NaN”。我发现只有当我的值不是整数时才能得到它们。你知道如何解决这个问题吗?有一个isNaN()函数,你可以用它来驱动你的逻辑。谢谢你的快速回答。当我现在看到它时,似乎有点明显。但有一件事很奇怪:我在控制台中看到一些“NaN”。我发现只有当我的值不是整数时才能得到它们。你知道如何解决这个问题吗?有一个isNaN()函数,你可以用它来驱动你的逻辑。谢谢你的回答。正如我对@Juan所说,当我的数字不是整数时,我在控制台中得到一些“NaN”。。如果你有任何想法,请查看我的更新。希望这能给你一个不同的处理方法的好主意。谢谢你的回答。我发现我的数字被定义为NaN,因为我是法国人,我的数字是这样显示的:1,x。Js期望一个点。我会在我的php文件中做一个替换来修复这个问题,谢谢你的回答。正如我对@Juan所说,当我的数字不是整数时,我在控制台中得到一些“NaN”。。如果你有任何想法,请查看我的更新。希望这能给你一个不同的处理方法的好主意。谢谢你的回答。我发现我的数字被定义为NaN,因为我是法国人,我的数字是这样显示的:1,x。Js期望一个点。我将在我的php文件中做一个替换来修复这个问题