一つの方法は、キーを経由してのみ定義されているものを追加することです:
this.prepaidObject = { };
Object.keys(this.prepaidDetailForm.prepaidDetails)
.forEach(function(key) {
var val = this.prepaidDetailForm.prepaidDetails[key];
if (val !== undefined) {
this.prepaidObject[key] = val;
}
});
これはのキーを前提としていますはprepaidDetails
と同じで、それらのすべてが同じルールに従います。特に
あなたはES6を使用している場合は、そのようmap
とreduce
を使用して、これは、よりエレガントになるかもしれない:
this.prepaidObject = Object.keys(this.prepaidDetailForm.prepaidDetails)
.map(key => ({key, val: this.prepaidDetailForm.prepaidDetails[key]}))
.reduce((obj, {key, val}) => {
if (val !== undefined) {
obj[key] = val;
}
return obj;
}, {});
、さらに簡潔なアプローチよりES6の機能を使用して:
this.prepaidObject = Object.keys(this.prepaidDetailForm.prepaidDetails)
.map(key => ({key, val: this.prepaidDetailForm.prepaidDetails[key]}))
.filter(({_, val}) => val !== undefined)
.reduce((obj, {key, val}) => Object.assign(obj, { [key]: val }), {});
を削除することを ' if(typeof X!== "undefined")this.prepaidObject ["key"] = X; ' –
なぜ単に"有効な "_プロパティのみをチェックして追加できるのであれば、追加されたプロパティを削除したいのですか? –