IMO Bu, aradığınız şeyi başarmanın en kolay yoludur:
let { prop1, prop2, prop3 } = someObject;
let data = { prop1, prop2, prop3 };
// data === { prop1: someObject.prop1, ... }
Temel olarak, değişkenleri yok edin ve ardından yeni bir nesne oluşturmak için başlatıcı kısayolunu kullanın. İhtiyaç yokObject.assign
Zaten bence bu en okunaklı yol. Bu vesile ile tam olarak someObject
istediğiniz sahne donanımını seçebilirsiniz . Mevcut bir nesneniz varsa, sadece sahne malzemelerini birleştirmek istiyorsanız, bunun gibi bir şey yapın:
let { prop1, prop2, prop3 } = someObject;
let data = Object.assign(otherObject, { prop1, prop2, prop3 });
// Makes a new copy, or...
Object.assign(otherObject, { prop1, prop2, prop3 });
// Merges into otherObject
Tartışmalı olarak daha temiz bir başka yazma yolu şudur:
let { prop1, prop2, prop3 } = someObject;
let newObject = { prop1, prop2, prop3 };
// Merges your selected props into otherObject
Object.assign(otherObject, newObject);
Bunu POST
yalnızca birkaç ayrı veriye ihtiyaç duyduğum çok sayıda istek için kullanıyorum . Ancak, bunu yapmak için tek bir yol olması gerektiğine katılıyorum.
DÜZENLEME: PS -
Geçenlerde, karmaşık nesnelerden iç içe geçmiş değerleri çıkarmak için ultra yıkmayı ilk adımda kullanabileceğinizi öğrendim! Örneğin...
let { prop1,
prop2: { somethingDeeper },
prop3: {
nested1: {
nested2
}
} = someObject;
let data = { prop1, somethingDeeper, nested2 };
Ayrıca, yeni bir nesne oluştururken Object.assign yerine yayılma operatörünü kullanabilirsiniz:
const { prop1, prop2, prop3 } = someObject;
let finalObject = {...otherObject, prop1, prop2, prop3 };
Veya...
const { prop1, prop2, prop3 } = someObject;
const intermediateObject = { prop1, prop2, prop3 };
const finalObject = {...otherObject, ...intermediateObject };
Object.assign(oof, foo)