How to merge two arrays in Javascript and de-duplicate items -


मेरे पास दो जावास्क्रिप्ट सरणियाँ हैं:

  var array1 = ["विजेंद्र", "सिंह "]; Var सरणी 2 = ["सिंह", "शाक्य"];  

मुझे आउटपुट होना चाहिए:

  var array3 = ["विजेंद्र", "सिंह", "शाक्य"];  

आउटपुट सरणी को दोहराए गए शब्द दोहराए जाने चाहिए।

मैं जावास्क्रिप्ट में दो सरणियों को कैसे मर्ज करूँगा ताकि मैं एक ही क्रम में प्रत्येक सरणी से अनन्य आइटम्स प्राप्त कर सकूं वे मूल सरणियों में डाली गई थीं?

बस सरणियों को मर्ज करने के लिए (डुप्लिकेट को हटाने के बिना) सरणी.संकेत :

  var array1 = ["विजेंद्र", "सिंह"]; Var सरणी 2 = ["सिंह", "शाक्य"]; Var सरणी 3 = सरणी 1। संकल्प (array2); // डुप्लिकेट को निकालने के रास्ते में कोई 'बनाया' नहीं है (वास्तव में है) / / ['विजेंदर', 'सिंह', 'सिंह', 'शाक्य'] /  Array.forEach  जो इसके लिए बहुत अच्छा होगा ..), इसलिए हम इसे स्वयं करते हैं: 

  Array.prototype.unique = function () {var a = this .concat (); के लिए (var i = 0; i & lt; a.length; ++ i) {के लिए (var j = i + 1; j & lt; a.length; ++ j) {if (a [i] === a [j] ]) A.splice (j--, 1); }} वापसी; };  

फिर, इसका उपयोग करने के लिए:

  var array1 = ["विजेंद्र", "सिंह"]; Var सरणी 2 = ["सिंह", "शाक्य"]; // दोनों सरणियों को विलीन करता है और अनूठे आइटम्स प्राप्त होता है var array3 = array1.concat (array2) .unique ();  

यह भी arrays के क्रम को संरक्षित करेगा (यानी, कोई सॉर्टिंग आवश्यक नहीं)।

संपादित करें:

चूंकि कई लोग Array.prototype और loops के लिए प्रोटोटाइप संवर्धन के बारे में चिंतित हैं, इसलिए इसका उपयोग करने का एक कम आक्रामक तरीका है:

 < कोड> फ़ंक्शन सरणीयूवायइक (सरणी) {var a = array.concat (); के लिए (var i = 0; i & lt; a.length; ++ i) {के लिए (var j = i + 1; j & lt; a.length; ++ j) {if (a [i] === a [j] ]) A.splice (j--, 1); }} वापसी; } Var सरणी 1 = ["विजेंद्र", "सिंह"]; Var सरणी 2 = ["सिंह", "शाक्य"]; // दोनों सरणियों को विलीन करता है और अनन्य आइटम्स प्राप्त करता है var array3 = arrayUnique (array1.concat (array2));  

उन भाग्यशाली लोगों के लिए, जहां प्रगतिशील ब्राउज़रों के साथ ईएस 5 उपलब्ध है, आप Object.defineProperty इस तरह से उपयोग कर सकते हैं:

  Object.defineProperty (Array.prototype, 'unique', {enumerable: false, configurable: false, writable: false, value: function () {var a = this.concat ()} के लिए (var i = 0; I & lt; a.length; ++ i) {के लिए (var j = i + 1; j & lt; a.length; ++ j) {if (a [i] === ए [जे]) a.splice (j -, 1);}} वापसी;}});  

Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -