ES6

2016-08-24 41 views
15

साथ दो वस्तुओं मर्ज मुझे यकीन है कि इस सवाल का पहले कहा गया है कर रहा हूँ, लेकिन मैं काफी जवाब मैं तलाश कर रहा हूँ नहीं मिल रहा है तो यहाँ जाता है,: इस प्रकार,ES6

मैं दो वस्तुओं है:

item = { 
    id: 'qwenhee-9763ae-lenfya', 
    address: '14-22 Elder St, London, E1 6BT, UK', 
    location: { 
    lat: -51.3303, 
    lng: 0.39440 
    } 
} 

मैं जानता हूँ कि मैं इसे इस तरह कर सकता है::

const response = { 
    lat: -51.3303, 
    lng: 0.39440 
} 

let item = { 
    id: 'qwenhee-9763ae-lenfya', 
    address: '14-22 Elder St, London, E1 6BT, UK' 
} 

मैं इस फार्म का इन एक साथ मर्ज करने की जरूरत है

हालांकि, मुझे लगता है कि यह अब करने का सबसे अच्छा तरीका नहीं है, क्योंकि ES6 ने शांत विनाशकारी/असाइनमेंट सामग्री प्रस्तुत की है; मैं गहरी वस्तु विलय लेकिन यह दुर्भाग्य से समर्थित नहीं है :(मैं भी कुछ ramda कार्यों के माध्यम से देखा है, लेकिन कुछ भी है कि लागू था नहीं देख सकता था की कोशिश की।

तो ES6 का उपयोग कर इन दो वस्तुओं विलय करने के लिए सबसे अच्छा तरीका क्या है?

+0

* * कौन सा वस्तु गुण को मर्ज करने में बिल्कुल भी मदद नहीं करता है "ES6 शांत destructuring/असाइनमेंट सामान की शुरुआत की।" –

उत्तर

30

आप Object.assign() का उपयोग उन्हें एक नया वस्तु में विलय करने के लिए कर सकते हैं:

const response = { 
 
    lat: -51.3303, 
 
    lng: 0.39440 
 
} 
 

 
let item = { 
 
    id: 'qwenhee-9763ae-lenfya', 
 
    address: '14-22 Elder St, London, E1 6BT, UK' 
 
} 
 

 
const newItem = Object.assign({}, item, { location: response }); 
 

 
console.log(newItem);

तुम भी object spread उपयोग कर सकते हैं, जो एक स्टेज है ECMAScript के लिए 3 प्रस्ताव, और कोलाहल के Object rest spread transform (Stage 3 preset में शामिल है) का उपयोग करने की आवश्यकता है:

const response = { 
 
    lat: -51.3303, 
 
    lng: 0.39440 
 
} 
 

 
let item = { 
 
    id: 'qwenhee-9763ae-lenfya', 
 
    address: '14-22 Elder St, London, E1 6BT, UK' 
 
} 
 

 
const newItem = { ...item, location: response }; 
 

 
console.log(newItem);

6

एक और aproach है:

let result = { ...item, location : { ...response } } 

लेकिन वस्तु प्रसार yet standardized नहीं है।

भी सहायक हो सकता है: https://stackoverflow.com/a/32926019/5341953

+2

इस तरह, प्रतिक्रिया एक गहरे क्लोन के बजाय सूचक के रूप में सहेजी गई। यह सही उत्तर होना चाहिए 'परिणाम = {... आइटम, स्थान: {... प्रतिक्रिया}} ' – FisNaN