मैं एक समस्या पर काम कर रहा हूं जहां मुझे वस्तुओं को एक रूप से दूसरे रूप में समूहित करना है।प्रदर्शन के साथ जावास्क्रिप्ट ऑब्जेक्ट पुनर्गठन
var initialData = [
{
house: { id: 1, text: "white" },
room: { id: 1, text: "red" },
price: 2.1
},
{
house: { id: 1, text: "white" },
room: { id: 2, text: "blue" },
price: 3.1
},
{
house: { id: 1, text: "white" },
room: { id: 3, text: "red" },
price: 5.8
},
{
house: { id: 2, text: "black" },
room: { id: 1, text: "yellow" },
price: 9.1
},
{
house: { id: 2, text: "black" },
room: { id: 2, text: "green" },
price: 7.7
},
];
और नई वस्तु इस तरह दिखना चाहिए:
एक उदाहरण की तुलना में बेहतर 1000 शब्दों है
var finalObject = {
houses: [
{
id: 1, text: "white",
rooms: [
{ id: 1, text: "red", price: "2.1" },
{ id: 2, text: "blue", price: "3.1" },
{ id: 3, text: "red", price: "5.8" }
]
},
{
id: 2, text: "black",
rooms: [
{ id: 1, text: "yellow", price: "9.1" },
{ id: 2, text: "green", price: "7.7" }
]
}
]
};
मैं उनके सभी कमरों के साथ अद्वितीय घरों खोजने के लिए और भी प्रत्येक जोड़ने के लिए कमरे के अंदर प्रारंभिक वस्तु से कीमत।
मैं सोच रहा हूँ के बाद से मैं तत्वों की एक बड़ी राशि होगा यह करने के लिए सबसे अच्छा तरीका है जो?
मेरे पास एकाधिक लूप के साथ कुछ विचार हैं, लेकिन मेरे लिए यह मेरे समाधान को थोड़ा जटिल लगता है।
अपडेट: मेरे सवाल का दोहराव क्योंकि मैं lodash का उपयोग नहीं करते के लिए एक उम्मीदवार के रूप में ही नहीं है, और मेरी वस्तु एक सा है, बस फिर से एकजुट नहीं पुनर्संशोधित किया जाना है।
संभव समाधान (@ से प्रेरित गेल का जवाब)
finalObject = {}
for (var i = 0; i < initialData.length; ++i) {
var item = initialData[i];
var id = item.house.id;
if(!finalObject[id]) {
finalObject[id] = item.house;
finalObject[id].rooms = [];
}
var room = item.room;
room.price = item.price;
finalObject[id].rooms.push(room);
}
console.log(finalObject);
ऐसा लगता है कि आप केवल एक पाश की आवश्यकता होगी। आप प्रत्येक तत्व के माध्यम से जा सकते हैं और इसे एक नई सरणी में जोड़ सकते हैं, इसे घर पर आधारित कर सकते हैं, फिर कमरे, फिर आईडी। – victor
आपको उन विचारों को पोस्ट करना चाहिए और समस्या को हल करने के लिए आपने अभी तक क्या लिखा है। – chazsolo
संभावित डुप्लिकेट [कुंजी द्वारा वस्तुओं की सरणी समूह कैसे करें] (https: // stackoverflow।कॉम/प्रश्न/40774697/कैसे-टू-ग्रुप-एरे-ऑफ-ऑब्जेक्ट-बाय-की) –