2016-08-04 8 views
18

जैसे ऑब्जेक्ट कुंजी स्ट्रिंग हैं, उनमें किसी भी प्रकार के वर्ण और विशेष वर्ण हो सकते हैं। मैंने हाल ही में एक ऑब्जेक्ट पर ठोकर खाई जिसे मैं एपीआई कॉल से प्राप्त करता हूं। इस ऑब्जेक्ट में इसके मुख्य नाम '-' हैं।अमान्य चर नाम वाले प्रमुख नामों के साथ ऑब्जेक्ट गुणों को कैसे नष्ट किया जाए?

const object = { 
    "key-with-dash": [] 
} 

Destructuring इस मामले में काम नहीं करता है क्योंकि key-with-dash एक वैध चर नाम नहीं है।

const { key-with-dash } = object; 

तो एक प्रश्न मेरे दिमाग में आया। मुझे ऐसे मामलों में वस्तु को कैसे नष्ट करना चाहिए? क्या यह भी संभव है?

उत्तर

24

const data = { 
 
    "key-with-dash": ["BAZ"] 
 
} 
 

 
const {"key-with-dash": foo} = data; 
 

 
console.log("foo", foo);

+1

वास्तव में यह सब पर अलियासिंग आयात करने के लिए इसी तरह की नहीं है। विनाशकारी में, आप किसी भी मनमाने ढंग से एलएचएस अभिव्यक्ति का उपयोग कर सकते हैं, केवल पहचानकर्ता नहीं। – Bergi

+0

हाँ, मैंने कहा "कुछ समान", वही नहीं ... बस तेजी से होने के लिए ... – Hitmands

+1

फिर भी यह एक झूठी छाप पैदा करता है, दोनों पहले से ही उलझन में हैं। तुम्हारा क्या मतलब है कि यह तेज़ है? – Bergi

13

बस इसे कोई मान्य नाम

let object = { 'key-with-dash': [] } 
 
let {'key-with-dash':y} = object 
 
console.log(y) 
 
// => []

आप भी जानते हैं कि आप चर के साथ destructure सकते हैं?

let object = { 'key-with-dash': [] } 
 
let key = 'key-with-dash' 
 
let {[key]:y} = object 
 
console.log(y) 
 
// => []

+2

अतिरिक्त युक्ति के लिए धन्यवाद। इसके बारे में नहीं पता था :) हालांकि मुझे हिटमैंड्स जवाब को स्वीकार करना था क्योंकि वह थोड़ा तेज़ था :) – larrydahooster

+2

कोई औचित्य आवश्यक नहीं^_^ – naomik

+0

चर के साथ विनाश करना सिर्फ वही है जो मुझे चाहिए! –

संबंधित मुद्दे