2016-05-31 2 views
0

現在、私のjsonデータでいくつかの計算をしようとしています。しかし、それは私がしたいことをしていない。JSONデータで数学を行う

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) 
    }) 
    } 

することができますように:私は

は、ここで私はデータを処理しようとしている私のコードの一部です(私はangularJSで動作によって)すべての行に計算りんごので、ループを作りました配列から1つの要素を取り出して5を追加しようとしているのを見てください(これは単なるテストであり、後でさらに高度な数学を行いたいです)。私はconsole.logに、私が望むことをしていないことがわかります。

たとえば、データが10.25の場合、15.25が必要な場合は10.255になります。私が間違っていることに関するアイデアは?あなたは@epascarelloが述べたように数にJSONデータを変換する必要があり、事前

+7

さてあなたは、文字列に追加されている.... – epascarello

+0

'parseFloatは(THDI)+ 5' ... – War10ck

+0

別の解決策は次のようになります。あなたの迅速な答えを+ THDI + 5つの – gaetanoM

答えて

1

感謝。 JSONは文字列としてシリアライズされます。

function logArrayElements(element, index, array) { 
    var thdi = Number(rs.data[index].THDI1_avg); 
    console.log(thdi + 5); 
} 
+0

感謝。私は今それを見るときに明らかなようです。しかし、1つは奇妙です:私はいくつかの "NaN"をコンソールに取得します。私は値が整数でないときにしか得ることができないと分かりました。どのようにそれを修正するための任意のアイデア? – coco

+0

これに基づいてロジックを駆動するために使用できるisNaN()関数があります。 – Juan

1

10.255が得られるのは、文字列に5を追加するためです。

試してみてください。

console.log(parseFloat(thdi) + 5); 

がないに関するアップデート数:

あなたは値が数値であるかどうかをチェックすることができいくつかの方法があります。

ますisNaN()

if(isNaN(thdi)) { 
console.log("Not a number"); 
} else { 
console.log("Is a number"); 
console.log(parseFloat(thdi) + 5); 
} 

のtry/catch

try{ 
console.log(parseFloat(thdi) + 5); 
} catch(err) { 
console.log("not a number"); 
} 

編集:望ましい結果が得られません。

if(typeof thdi === 'number') { 
    console.log("Is a number"); 
    console.log(parseFloat(thdi) + 5); 
} else { 
console.log("not a number"); 
} 

typeofを


も参照してください:How do you check that a number is NaN in JavaScript?

注:THDIが未定義の場合は、その後のisNaN()はエラーをスローします。 typeofはundefinedを扱うことができます。

+0

あなたの答えをありがとう。私が@Juanに言ったように、私の数が整数でないときに、コンソールに "NaN"を取得します。あなたは何か考えている場合 – coco

+0

私の更新を参照してください。ホープはそれを扱うさまざまな方法の良いアイデアを与えます。 – seN

+0

お返事ありがとうございます。私は自分の数字がNaNとして定義されていることを理解しました。なぜなら、私がフランス人であるので、私の数字はそのように表示されるからです:1、x。そして、Jsはドットを期待している。私はちょうどそれを修正するために私のPHPファイルで置き換えを行います – coco

関連する問題