Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

'अगला' और 'पिछला' गुणों के आधार पर छँटाई (जेएस तुलनित्र समारोह)

<घंटा/>

यहाँ हमारी वस्तु का नमूना सरणी है, प्रत्येक वस्तु को एक बहुपृष्ठ वेबसाइट के कुछ पृष्ठ का प्रतिनिधित्व करने के रूप में मानें, प्रत्येक वस्तु में एक अगली संपत्ति होती है (जब तक कि यह अंतिम पृष्ठ का प्रतिनिधित्व नहीं करती) जो किसी अन्य वस्तु की कुछ आईडी और पिछली संपत्ति की ओर इशारा करती है (जब तक कि यह पहले का प्रतिनिधित्व नहीं करती है) पेज) जो अपने पिछले ऑब्जेक्ट की कुछ आईडी की ओर इशारा करता है।

ये सभी ऑब्जेक्ट अभी बेतरतीब ढंग से स्थित हैं, हमारा काम उन्हें उनकी सही स्थिति में क्रमबद्ध करना है -

आगमन करने दें =[ { id:"1325asdfasdasd", अगला:"5345341fgdfgdd", पिछला:"545234123fsdfd"}, { id:"das987as9dya8s", अगला:"3j12k3b1231jkj" }, { id:"89ad8sasds", पिछला:"1j3b12k3jbasdd" }, { id:"5345341fgdfgdd", अगला:"1j3b12k3jbasdd", पिछला:"1325asdfasdasd"}, { आईडी:"1423123123asfd", अगला:"545234123fsdfd", पिछला:"3j12k3b 1233jk" ", अगला:"89ad8sasds9d8s", पिछला:"5345341fgdfgdd" }, { id:"3j12k3b1231jkj", अगला:"1423123123asfd", पिछला:"das987as9dya8s" }, { id:"545234123fsdfd", अगला:"d1325asd", अगला:"d1325asd" "1423123123asfd" },];

हमें इसे सॉर्ट करने की आवश्यकता है ताकि बिना किसी पिछले वाले ऑब्जेक्ट पहले आए और एक के साथ कोई अगला कम्सलास्ट न हो और अगला और पिछला सही आईडी की ओर इशारा करे

हम इस समस्या से दो चरणों में निपटेंगे -

चरण 1 - हम पूरे एरे पर पुनरावृति करते हैं, आईडी को कुंजी के रूप में और ऑब्जेक्ट को मैप में वैल्यू के रूप में स्टोर करते हैं और ऑब्जेक्ट को एक अलग वेरिएबल में पिछले नहीं रखते हैं -

const objectMap =new Map();let firstObject;const SortedArray =[];for(const obj of arr){ objectMap.set(obj.id, obj); अगर(!obj.previous){ firstObject =obj; }} 

चरण 2 - हम मानचित्र के तत्वों पर एक लूप शुरू करते हैं और अंत तक पहुंचने पर प्रत्येक सदस्य की अगली वस्तुओं तक पहुंचना और धक्का देना शुरू करते हैं -

 के लिए (शुरू करें =firstObject; प्रारंभ करें; प्रारंभ करें =objectMap.get (start.next)) {सॉर्टेडअरे.पुश (प्रारंभ);}; कंसोल.लॉग (सॉर्टेडअरे);

आइए अब आउटपुट के साथ पूरा उदाहरण देखें -

उदाहरण

आगमन करने दें =[ { id:"1325asdfasdasd", अगला:"5345341fgdfgdd", पिछला:"545234123fsdfd"}, { id:"das987as9dya8s", अगला:"3j12k3b1231jkj" }, { id:"89ad8sasds", पिछला:"1j3b12k3jbasdd" }, { id:"5345341fgdfgdd", अगला:"1j3b12k3jbasdd", पिछला:"1325asdfasdasd"}, { आईडी:"1423123123asfd", अगला:"545234123fsdfd", पिछला:"3j12k3b 1233jk" ", अगला:"89ad8sasds9d8s", पिछला:"5345341fgdfgdd" }, { id:"3j12k3b1231jkj", अगला:"1423123123asfd", पिछला:"das987as9dya8s" }, { id:"545234123fsdfd", अगला:"d1325asd", अगला:"d1325asd" "1423123123asfd"},];const objectMap =नया नक्शा();पहलेऑब्जेक्ट दें;कॉन्स सॉर्टेडअरे =[];फॉर (गिरफ्तारी का कॉन्स्ट ओबीजे){ऑब्जेक्टमैप.सेट(obj.id, obj); अगर(!obj.previous){ firstObject =obj; }} के लिए (शुरू करें =फर्स्टऑब्जेक्ट; प्रारंभ करें; प्रारंभ करें =ऑब्जेक्टमैप.गेट (स्टार्ट.अगला)) {सॉर्टेडअरे.पुश (स्टार्ट);}; कंसोल.लॉग (सॉर्टेडअरे);

आउटपुट

कंसोल में कोड का आउटपुट होगा -

[ { id:'das987as9dya8s', अगला:'3j12k3b1231jkj' }, { id:'3j12k3b1231jkj', अगला:'1423123123asfd', पिछला:'das987as9dya8s'},{ id:'1423123123asfd', '5452123asfd' , पिछला:'3j12k3b1231jkj'},{ id:'545234123fsdfd', अगला:'1325asdfasdasd', पिछला:'1423123123asfd'},{ id:'1325asdfasdasd', अगला:'5345341fgdfgdd', पिछला:'545234123fsdfd', पिछला:'545234123fs' :'5345341fgdfgdd', अगला:'1j3b12k3jbasdd', पिछला:'1325asdfasdasd'},{ id:'1j3b12k3jbasdd', अगला:'89ad8sasds9d8s', पिछला:'5345341fgdfgdd'},{3jd1sd8ad' }] 
  1. जावास्क्रिप्ट में विनाशकारी और कार्य पैरामीटर

    जावास्क्रिप्ट में फ़ंक्शन पैरामीटर को नष्ट करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&

  1. जावास्क्रिप्ट ऑब्जेक्ट को सरणी गुणों की लंबाई के आधार पर छाँटना।

    जावास्क्रिप्ट ऑब्जेक्ट को सरणी गुणों की लंबाई के अनुसार क्रमबद्ध करने के लिए निम्नलिखित कोड है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0&

  1. सीएसएस के साथ अगले और पिछले बटन कैसे बनाएं?

    CSS के साथ अगला और पिछला बटन बनाने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> a {    text-decoration: none;    display: inline-blo