2017-02-17 6 views
0

APIコールからのオブジェクトの戻り値の配列があります。そして、オブジェクト構造は、配列はオブジェクトのn数を含めることができます..このようAngular JSのオブジェクトの配列内の通貨の値を合計する方法

enter image description here

次のようになります。

私がしなければならないものは、sum up all the values of all the object's selectedMapping.costと合計を表示します。

しかし、1つの問題は、costsが少しトリッキーなことがあるということです。

これらは、それぞれ0.30および978.00と仮定する必要がある.30または978などなどの形式にすることができます。 nullまたはundefinedにすることもできます。この場合、0.0 0.0にデフォルト値を設定する必要があります。

どのようにしてAngular JSで合計を達成できますか?適切なコンバージョンを処理して合計を表示するにはどうすればよいですか?

+1

JSは気にしない.30または978.もしそれが文字列ならば、parseFloatを使ってください。そうでなければ、有効な数字です: 'alert((978。)。toFixed(2))' - googleで最初に検索してください:https://www.google.com/search?q=loop+sum+angular – mplungjan

+0

toFixed(2)https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Number/toFixed –

+1

申し訳ありませんが、あなたの担当者はコードとサンプルデータの共有の重要性を知っている必要があります(**スクリーンショット**はありません)。 – Rajesh

答えて

0

希望私はあなたが正しい、私が作成したこのplunkerはあなたが欲しいものを行う必要がありました: https://embed.plnkr.co/zzQkybjND5xi2Uo7dNHZ/

は、単にので、すべて0.0との和に設定する場合はnullまたは未定義の値をチェックし、配列を反復処理値。

0

ここでは、アレイの上にマッピングしてコストを取得し、ramdajsのR.sumメソッドを使用することができ、未定義/ nullの項目に

const sum = items.reduce((prevVal,item)=>{ 
    const selectedMapping = item.selectedMapping || null 
    const cost = (isNaN(selectedMapping) && 'cost' in selectedMapping)? Number(selectedMapping.cost) : 0 
    return prevVal + cost 
},0) 
console.log(sum.toFixed(2)) 

Here's a JSBin for it

And reference for JavaScript’s Map, Reduce, and Filter

0

を扱う私の解決策だ

const array = [ 
    { 
    selectedMapping: { 
     cost: ".30" 
    } 
    }, 
    { 
    selectedMapping: { 
     cost: "200" 
    } 
    }, 
    { 
    selectedMapping: { 
     cost: ".60" 
    } 
    }, 
    { 
    selectedMapping: { 
     cost: ".10" 
    } 
    },]; 

const currency = array.map(curr=>parseFloat(curr.selectedMapping.cost)) 
R.sum(currency); 

hereはそのことを嫌うコードです。

関連する問題