IMO यह सबसे आसान तरीका है जिसे आप खोज रहे हैं:
let { prop1, prop2, prop3 } = someObject;
let data = { prop1, prop2, prop3 };
// data === { prop1: someObject.prop1, ... }
मूल रूप से, चर में विनाश और फिर एक नई वस्तु बनाने के लिए इनिशलाइज़र शॉर्टहैंड का उपयोग करें। की कोई ज़रूरत नहींObject.assign
मुझे लगता है कि यह सबसे पठनीय तरीका है, वैसे भी। आप इसके द्वारा सटीक प्रॉप्स का चयन कर सकते हैं someObject
जो आप चाहते हैं। यदि आपके पास कोई मौजूदा ऑब्जेक्ट है तो आप केवल प्रॉपर को मर्ज करना चाहते हैं, तो कुछ इस तरह करें:
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
एक और, यकीनन क्लीनर, इसे लिखने का तरीका है:
let { prop1, prop2, prop3 } = someObject;
let newObject = { prop1, prop2, prop3 };
// Merges your selected props into otherObject
Object.assign(otherObject, newObject);
मैं POST
अनुरोधों के लिए इसका उपयोग करता हूं जहां मुझे केवल असतत डेटा के कुछ टुकड़े चाहिए। लेकिन, मैं मानता हूं कि ऐसा करने के लिए एक लाइनर होना चाहिए।
संपादित करें: PS -
मैंने हाल ही में सीखा है कि आप जटिल वस्तुओं में से नेस्टेड मानों को खींचने के लिए पहले चरण में अल्ट्रा डिस्ट्रक्टुरिंग का उपयोग कर सकते हैं! उदाहरण के लिए...
let { prop1,
prop2: { somethingDeeper },
prop3: {
nested1: {
nested2
}
} = someObject;
let data = { prop1, somethingDeeper, nested2 };
इसके अलावा, आप ऑब्जेक्ट के बजाय प्रसार ऑपरेटर का उपयोग कर सकते हैं। एक नई वस्तु बनाते समय असाइन करें:
const { prop1, prop2, prop3 } = someObject;
let finalObject = {...otherObject, prop1, prop2, prop3 };
या ...
const { prop1, prop2, prop3 } = someObject;
const intermediateObject = { prop1, prop2, prop3 };
const finalObject = {...otherObject, ...intermediateObject };
Object.assign(oof, foo)