2017-04-27 8 views
-4

を追加...バージョンは、私はこのような配列を持っている0.10.xnodejs私が使用しなければならない配列の検索と私はノードの専門家からの助けを必要と

です[ 'DDD', '3' ][ 'ABC', '4' ]と入力し、私が達成したいのは、配列に最初の列が存在するかどうかを調べることです。配列に値を追加するだけではない場合は、2番目の列を合計します。私が持っていることを期待する結果で

  1. [ 'DDD', '3' ]を追加 - DDDは、それまでの配列には存在しませんが

    [ [ 'ABC', '5' ] , [ 'BCD', '1' ] , [ 'DDD', '3' ] ]

  2. を追加されます[ 'ABC', '4' ]を追加 - ABCは、アレイ内に存在します2番目の列はABCのために合計されます

    [ [ 'ABC', '9' ] , [ 'BCD', '1' ] , [ 'DDD', '3' ] ]

+1

何を試しましたか? –

+0

ソース配列は、達成したいものとは関係ありませんか?より良い例がありますか? – Alex

+0

@Ryad - 私はそれほど熟練していないので、何も試していないので... – mfpass

答えて

0

あなたのオブジェクトを助ける初期値下さい:DDDが存在しない場合は

var myObj = [{'ABC': '5'}, {'BCD': '1'}] 

今、ちょうどそれを追加します。

var DDD = "3" 
var DDDExists = false; 

myObj.forEach(function(){ 
    if(this.DDD.length > 0){ 
    // If it exists, break the loop 
    DDDExists = true; 
    break; 
    } 
}) 

// If DDD doesn't exists, add it 
if(DDDExists === false){ 
    // Add DDD object to array 
    myObj.push({'DDD': 3}); 
} 

ABCが存在する場合は、合計

のすべての値に
// Check if ABC exists 
var ABCExsits = false; 

myObj.forEach(function(){ 
    if(this.ABC.length > 0){ 
    // If ABC exits, break the loop 
    ABCExists = true; 
    break; 
    } 
}) 

if(ABCExists === true){ 

    // Sum all the values 
    var totalSum = 0; 

    myObj.forEach(function(){ 
    // Since we don't know the name property of the obj, we need to do a for loop 
    for(var prop in this){ 
     totalSum = totalSum + this[prop]; 
    }  
    }) 

    // Now add `totalSum` to ABC 

    myObj.foreach(function(){ 
    if(this.ABC.length > 0){ 
     this.ABC = totalSum; 
     break; 
    } 
    }) 

} 
+0

私は少し調整したが、それは私のために働く!ありがとうございました! – mfpass

関連する問題