2017-04-15 10 views
-1

配列をオブジェクトに縮小しようとすると、初期オブジェクトをreduce関数外の変数に設定しないと、オブジェクトの値が引き継がれます。初期オブジェクトを現在の値に変更するArray.reduce

私は、コードをステップ実行すると
relevantGroupFiles.then(function(data) { 
    var results = []; 
    var rawResults = data.PrimaryQueryResult.RelevantResults.Table.Rows; 
    rawResults = _.map(rawResults, function(x) { return x.Cells }) 

    var propertiesWanted = ['Path', 'Title', 'ccaApplicationFileNumber', 'created'] 

    rawResults.forEach(function(item) { 
    var r = propertiesWanted.reduce(function(total, current) { 
     return total[current] = _.find(item, {"Key": current}).Value 
    }, {}) 

    results.push(r) 
    }) 
}) 

は、第1の反復戻り、これは:良いです

total = {Path: "somePath"}は、その後、私は次のプロパティを追加します。この中

しかし、非常に次の反復、総巻数:total = "somePath"

もはやオブジェクトが、文字列であるsomePathに次のプロパティを設定しないようにしようとしているので、その後、私はエラーを取得しますか?

答えて

1

あなたがあー、私はセットプロパティを返すよ

var r = propertiesWanted.reduce(function(total, current) { 
     total[current] = _.find(item, {"Key": current}).Value; 
     return total; 
    }, {}) 
+0

...総返す必要があり、私が参照してください。ありがとうございました。 – Batman

関連する問題