दिलचस्प पोस्ट
एक plpgsql फ़ंक्शन में तालिका और स्तंभ नामों को तर्क के रूप में परिभाषित करें? आईओएस: एक HTTP पोस्ट अनुरोध कैसे करना है? एक्लिप्से जूनो / केप्लर / लुना सीडीटी में सी ++ 11 सक्षम करना गतिविधि में वापस बटन को कैसे नियंत्रित करें क्या जावास्क्रिप्ट एक पास-बाय-रेफरेंस या पास-बाय-वैल्यू भाषा है? Tablefunc का उपयोग करते हुए एकाधिक कॉलम पर धुरी क्या हम <ul> साथ <li> किसी भी अन्य टैग का उपयोग कर सकते हैं? पीएचपी चर के जरिए जावास्क्रिप्ट या jQuery का उपयोग कैसे करें? <Php echo $ variable?> सूची की समझ और जनरेटर अभिव्यक्ति में उपज विजुअल C ++ जीसीसी के __त्तात्व__ के बराबर ((__ पैक्ड__)) कोड प्रथम: स्वतंत्र संघ बनाम विदेशी कुंजी संघों? Google MAP API v3: प्रदर्शित मार्करों पर केंद्र और ज़ूम UnivariateSpline वस्तु से पट्टी समीकरण प्राप्त करना JTextPane में विशिष्ट शब्दों का रंग कैसे बदल सकता है? 403 त्रुटि – एक त्रुटि है त्रुटि: अस्वीकृत_यूसरगेन्ट

कैसे जावास्क्रिप्ट में एक सरणी गठबंधन करने के लिए

हैलो मैं सरणी में अद्वितीय आइटम के आधार पर एक सरणी को मर्ज करना चाहता हूं।

वह वस्तु जो मेरे पास है

totalCells = [] 

इस कुल सील्स में मुझे इस तरह से कई ऑब्जेक्ट हैं I

 totalCells = [ { cellwidth: 15.552999999999999 lineNumber: 1 }, { cellwidth: 14 lineNumber: 2 }, { cellwidth: 14.552999999999999 lineNumber: 2 }, { cellwidth: 14 lineNumber: 1 } ]; 

अब मैं एक सरणी बनाना चाहता हूं जहां पर लाइन के आधार पर मुझे सरणी का संयोजन होता है।

जैसा कि मेरे पास पंक्ति संख्या संपत्ति और सेलविड्थ संग्रह के साथ कोई ऑब्जेक्ट है I क्या मैं यह कर सकता हूं ?

मैं प्रत्येक पंक्ति के माध्यम से पाश कर सकता हूं और जांच कर सकता हूँ कि रेखा संख्या समान है और फिर उस सेलविड्थ को दबाएं। क्या कोई तरीका है जिसे मैं समझ सकता हूँ?

मैं इस तरह एक आउटपुट प्राप्त करने की कोशिश कर रहा हूँ

 totalCells = [ { lineNumber : 1, cells : [15,16,14] }, { lineNumber : 2, cells : [17,18,14] } ] 

वेब के समाधान से एकत्रित समाधान "कैसे जावास्क्रिप्ट में एक सरणी गठबंधन करने के लिए"

 var newCells = []; for (var i = 0; i < totalCells.length; i++) { var lineNumber = totalCells[i].lineNumber; if (!newCells[lineNumber]) { // Add new object to result newCells[lineNumber] = { lineNumber: lineNumber, cellWidth: [] }; } // Add this cellWidth to object newcells[lineNumber].cellWidth.push(totalCells[i].cellWidth); } 

इस तरह के किसी चीज़ के बारे में क्या :

 totalCells.reduce(function(a, b) { if(!a[b.lineNumber]){ a[b.lineNumber] = { lineNumber: b.lineNumber, cells: [b.cellwidth] } } else{ a[b.lineNumber].cells.push(b.cellwidth); } return a; }, []); 

उम्मीद है की यह मदद करेगा!

क्या आपका मतलब कुछ इस तरह का था?

 var cells = [ { cellwidth: 15.552999999999999, lineNumber: 1 }, { cellwidth: 14, lineNumber: 2 }, { cellwidth: 14.552999999999999, lineNumber: 2 }, { cellwidth: 14, lineNumber: 1 } ] var totalCells = []; for (var i = 0; i < cells.length; i++) { var cell = cells[i]; if (!totalCells[cell.lineNumber]) { // Add object to total cells totalCells[cell.lineNumber] = { lineNumber: cell.lineNumber, cellWidth: [] } } // Add cell width to array totalCells[cell.lineNumber].cellWidth.push(cell.cellwidth); }