2017-11-16 17 views
2

私はこのようになります機能を持っている:私は私の機能を変更するにはどうすればよい配列の構造を変更する

[{ 
    "dpr_name3": "3" 
}, { 
    "dpr_name1": "1" 
}, { 
    "dpr_name4": "5" 
}, { 
    "dpr_name2": "2" 
}, { 
    "dfnc_cur": "181" 
}, { 
    "doc_dt": "14.11.2017" 
}] 

を:結果

let result = []; 
$(this).find('.js-readable').each(function(){ 
    if (this._value().length > 0){ 
     result.push({ 
      [this.mainId] : this._value() 
     }); 
    }; 
}); 
return result 

私はこのようになります配列を取得

[{ 
    "dpr_name3": "3", 
    "dpr_name1": "1", 
    "dpr_name4": "5", 
    "dpr_name2": "2", 
    "dfnc_cur": "181", 
    "doc_dt": "14.11.2017" 
}] 
+2

[<] 'をクリックして[mcve]を作成してください – mplungjan

+0

JSONへの参照を削除するようにあなたの質問を修正しました。あなたはオブジェクトの配列を持っています。 –

+1

'let result = [{}];結果[0] [this.mainId] = this._value() ' – mplungjan

答えて

1

あなたは配列にプッシュする必要はありません。あなたがオブジェクトにresultを変更し、に値を割り当てることができ

let result = [{}]; 
$(this).find('.js-readable').each(function(){ 
    if (this._value().length > 0){ 
     result[0][this.mainId] = this._value; 
    }; 
}); 
return result 
0

:あなたがしなければならないのは、最初の要素がそれにキーと値を追加すると、ループしながら、空のオブジェクトを使って配列を初期化することです指定されたキー。

let result = {}; 
$(this).find('.js-readable').each(function(){ 
    if (this._value().length > 0){ 
     result[this.mainId] = this._value() 
    }; 
}); 

後で使用するために、結果を配列にラップすることができます。