2017-11-29 12 views
0

私は、尊重されたキー値を持つオブジェクトプロパティを持つ配列を持っています。配列内に同じキーを持つオブジェクトを追加する必要があります。javascriptで特定のキーを持つオブジェクトの配列に別のオブジェクトを追加する方法

私の配列は次のとおりです。

var sam = [ 
    { Absenteeism: [{ 
    "SubIndicator": "Absenteeism (PH Worker/Supervisor)", 
    "Target": "", 
    "Actual": "", 
    "Variance": "", 
    "Benchmark": 100, 
    "Weightage": 25, 
    "PenalitySubIndicator": "", 
    "PenalityKeyIndicator": "" 
    }] }, 
    {Coverage: [{"KeyIndicator":"Coverage", 
    "SubIndicator":"Door to Door (GatesCovered)", 
    "Target":null,"Actual":null, 
    "Variance":null, 
    "Benchmark":100,"Weightage":25, 
    "PenalitySubIndicator":null, 
    "PenalityKeyIndicator":null, 
    "ScorecardId":1} ] },  
    { Weighment: [ {"KeyIndicator":"Weighment", 
    "SubIndicator":"Dry", 
    "Target":null, 
    "Actual":null, 
    "Variance":null, 
    "Benchmark":80, 
    "Weightage":25, 
    "PenalitySubIndicator":null, 
    "PenalityKeyIndicator":null, 
    "ScorecardId":1} ] }, 
    { Weighment: [ {"KeyIndicator":"Weighment", 
    "SubIndicator":"Wet", 
    "Target":null, 
    "Actual":null, 
    "Variance":null, 
    "Benchmark":80, 
    "Weightage":25, 
    "PenalitySubIndicator":null, 
    "PenalityKeyIndicator":null, 
    "ScorecardId":1} ] }, 
    { Transportation: [ {"KeyIndicator":"Transportation", 
    "SubIndicator":"Punctuality", 
    "Target":null,"Actual":null, 
    "Variance":null, 
    "Benchmark":100, 
    "Weightage":25, 
    "PenalitySubIndicator":null, 
    "PenalityKeyIndicator":null, 
    "ScorecardId":1} ] }, 
    { Transportation: [ {"KeyIndicator":"Transportation", 
    "SubIndicator":"Transfer Point Coverage", 
    "Target":null, 
    "Actual":null, 
    "Variance":null, 
    "Benchmark":100, 
    "Weightage":25, 
    "PenalitySubIndicator":null, 
    "PenalityKeyIndicator":null, 
    "ScorecardId":1} ] } 
] 

期待される出力配列は、今

var sam = [{ 
    "Absenteeism": [{ 
    "SubIndicator": "Absenteeism (PH Worker/Supervisor)", 
    "Target": "", 
    "Actual": "", 
    "Variance": "", 
    "Benchmark": 100, 
    "Weightage": 25, 
    "PenalitySubIndicator": "", 
    "PenalityKeyIndicator": "" 
    }], 
    "Coverage": [{ 

    "SubIndicator": "Door to Door (Gates Covered)", 
    "Target": "", 
    "Actual": "", 
    "Variance": "", 
    "Benchmark": 100, 
    "Weightage": 25, 
    "PenalitySubIndicator": "", 
    "PenalityKeyIndicator": "" 
    }], 
    "Weighment": [{ 

     "SubIndicator": "Dry", 
     "Target": "", 
     "Actual": "", 
     "Variance": "", 
     "Benchmark": 80, 
     "Weightage": 25, 
     "PenalitySubIndicator": "", 
     "PenalityKeyIndicator": "" 
    }, 
    { 

     "SubIndicator": "Wet", 
     "Target": "", 
     "Actual": "", 
     "Variance": "", 
     "Benchmark": 80, 
     "Weightage": 25, 
     "PenalitySubIndicator": "", 
     "PenalityKeyIndicator": "" 
    } 
    ], 
    "Transportation": [{ 

     "SubIndicator": "Punctuality", 
     "Target": "", 
     "Actual": "", 
     "Variance": "", 
     "Benchmark": 100, 
     "Weightage": 25, 
     "PenalitySubIndicator": "", 
     "PenalityKeyIndicator": "" 

    }, 
    { 
     "SubIndicator": "Transfer Point Coverage", 
     "Target": "", 
     "Actual": "", 
     "Variance": "", 
     "Benchmark": 100, 
     "Weightage": 25, 
     "PenalitySubIndicator": "", 
     "PenalityKeyIndicator": "" 

    } 
    ] 
}] 

で、私は(ウェットとドライ)1つのアレイ内や輸送と同じweighmentを取得する必要があります(時間厳守と転送ポイントカバレッジ)。これらはすべて動的表記でなければなりません。

+0

使用http://reactivex.io/learnrx/、配列とオブジェクトの操作の基本を学びます。 – evolutionxbox

+0

あなたはあなたにこの問題を解決しようとしたこと、そしてどこに問題があるのか​​を教えてくれますか? –

答えて

0

var sam = [{ Absenteeism: [{ 
 
"SubIndicator": "Absenteeism (PH Worker/Supervisor)", 
 
"Target": "", 
 
"Actual": "", 
 
"Variance": "", 
 
"Benchmark": 100, 
 
"Weightage": 25, 
 
"PenalitySubIndicator": "", 
 
"PenalityKeyIndicator": "" 
 
}] }, 
 
{Coverage: [{"KeyIndicator":"Coverage", 
 
"SubIndicator":"Door to Door (GatesCovered)", 
 
"Target":null,"Actual":null, 
 
"Variance":null, 
 
"Benchmark":100,"Weightage":25, 
 
"PenalitySubIndicator":null, 
 
"PenalityKeyIndicator":null, 
 
"ScorecardId":1} ] },  
 
{ Weighment: [ {"KeyIndicator":"Weighment", 
 
"SubIndicator":"Dry", 
 
"Target":null, 
 
"Actual":null, 
 
"Variance":null, 
 
"Benchmark":80, 
 
"Weightage":25, 
 
"PenalitySubIndicator":null, 
 
"PenalityKeyIndicator":null, 
 
"ScorecardId":1} ] }, 
 
{ Weighment: [ {"KeyIndicator":"Weighment", 
 
"SubIndicator":"Wet", 
 
"Target":null, 
 
"Actual":null, 
 
"Variance":null, 
 
"Benchmark":80, 
 
"Weightage":25, 
 
"PenalitySubIndicator":null, 
 
"PenalityKeyIndicator":null, 
 
"ScorecardId":1} ] }, 
 
{ Transportation: [ {"KeyIndicator":"Transportation", 
 
"SubIndicator":"Punctuality", 
 
"Target":null,"Actual":null, 
 
"Variance":null, 
 
"Benchmark":100, 
 
"Weightage":25, 
 
"PenalitySubIndicator":null, 
 
"PenalityKeyIndicator":null, 
 
"ScorecardId":1} ] }, 
 
{ Transportation: [ {"KeyIndicator":"Transportation", 
 
"SubIndicator":"Transfer Point Coverage", 
 
"Target":null, 
 
"Actual":null, 
 
"Variance":null, 
 
"Benchmark":100, 
 
"Weightage":25, 
 
"PenalitySubIndicator":null, 
 
"PenalityKeyIndicator":null, 
 
"ScorecardId":1} ] } ] 
 
var resultArray = sam.reduce((accumulator, current) => { 
 
    console.log(current, accumulator) 
 
    Object.keys(current).forEach((element) => { 
 
     accumulator.push(current[element]) 
 
    }) 
 
    return accumulator 
 
    }, []) 
 
console.log(resultArray)

var resultArray = sam.reduce((accumulator, current) => { 
    Object.keys(current).forEach((element) => { 
     accumulator.push(current.element) 
    }) 
    return accumulator 
    }, []) 

// ES6の道

関連する問題