यह कोड डुप्लिकेट मानों को हटाने और रिक्त स्थान को हटाने वाला है, लेकिन यह अद्वितीय मानों को भी हटा रहा है।

cnt = 0;
for (let i = 0; i < this.fin.length; i++) {
    for (let j = 0; j < this.fin.length; j++) {
        if (this.fin[i] == this.fin[j]) {
            cnt++;
            if (cnt > 1) {
                this.fin[j] = '';
            }
        }
        if (j == this.fin.length - 1) {
            cnt = 0;
        }
    }
}
this.ntmtg1 = true;
count = 0;
for (let j in this.fin) {
    if (this.fin[j] == '') {
        this.fin.splice(parseInt(j));
    }
}
0
prabhu 30 मार्च 2018, 10:33

4 जवाब

सबसे बढ़िया उत्तर

आप ES6 सुविधा और सेट करें :

var fin = ["Vivek","Vivek","Mak","Nik","Mak","Hir","Hari","Nur","Nik"];

var result = [...new Set(fin)];

console.log("Fin Total :" , fin.length , ", Result Total :" , result.length);

console.log(result);
0
Vivek Doshi 30 मार्च 2018, 07:50

फिन: कोई = ["OMAD", "SVAC", "SVCH", "SVAD", "LGAG", "OMAM", "OTBK", "OTBH", "LGAX", "LGBL", "SVAN", " LGAD", "SVAB", "SKAP", "LGRX", "SVAA", "SVAS", "DNAS", "EGEI", "NCAT", "SVBS", "SVBL", "SVFM", "EPKG" "ओबीबीबी", "ओबीबीएस", "ओबीकेएच", "एलटीएफडी", "एसवीबीसी", "एसवीबीआई", "एसवीबीएम", "एसवीबीबी", "एसवीबीओ", "टीएनसीबी", "एसवीबीजेड", "एसकेबीयू", " एसकेबीएन", "एसवीसीआई", "एसवीसीडी", "एसवीसीएल", "एसवीसीएन", "एसवीसीसी", "एसवीसीएस", "एसवीसीओ", "एसवीसीजेड", "एसकेजीओ", "एसवीसीपी", "एनजेडसीजी", "एसवीक्यूएम" "एसवीसीए", "एलजीएसए", "एमडब्ल्यूसीबी", "सीवाईसीके", "एसवीसीबी", "एसवीपीआई", "एमआरसीयू", "ईकेसीएन", "एसवीसीआर", "एसकेसीवी", "एसवीयूआर", "एसवीसीयू", " SVRB", "TNCF", "TNCC", "LGTT", "VRMD", "OMDW", "SVLL", "SVED", "SVRS", "SVEM", "SVJI", "SVVG", "LGEL" "SVEZ", "NZEV", "EDTF", "SVFT", "VRMR", "SKGB", "SVGU", "SVGD", "SVGT", "SVGI", "SVQJ", "EKHM" , " एसवीक्यूएफ", "एलएसपीके", "एसवीक्यूएल"];

-1
prabhu 30 मार्च 2018, 07:37

आपके कोड में कुछ सुधार

  1. यदि आप सरणी को बदलने जा रहे हैं तो for in का उपयोग न करें
  2. केवल एक तर्क के साथ ब्याह सूचकांक से सरणी के अंत तक विभाजित होता है, इसलिए एक दूसरा तर्क जोड़ें, ब्याह की लंबाई

नीचे दिए गए कोड में, मैं सरलता के लिए this को छोड़ देता हूं

इसके अलावा, मैं ले जाया गया था cnt परिभाषित किया गया है, इसलिए इसे रीसेट करने के लिए कोई if स्थिति जिमनास्टिक की आवश्यकता नहीं है

const fin = [1,3,6,7,3,2,4,5,6,4,3,2,1,4,5];
for (let i = 0; i < fin.length; i++) {
    let cnt = 0;
    for (let j = 0; j < fin.length; j++) {
        if (fin[i] == fin[j]) {
            cnt++;
            if (cnt > 1) {
                fin[j] = '';
            }
        }
    }
}
let count = 0;
for (let i = 0; i < fin.length; i++) {
    if (fin[i] == '') {
        fin.splice(i, 1);
        --i; // we've removed an item
    }
}
console.log(fin);
0
Jaromanda X 30 मार्च 2018, 07:53

आपका तर्क लगभग सही है। आपके द्वारा की गई कुछ गलतियाँ हैं: -

  1. आपके कोड के अंतिम भाग में लूप के लिए, जब आप for( let i in SomeCollection) 'i' का उपयोग करते हैं तो वह मान होगा न कि सरणी में अनुक्रमणिका। मुझे लगता है कि आप इंडेक्स तक पहुंचना चाहते हैं, न कि मूल्य। मुझे लगता है कि आपको for(int i =0; i<fin.length;i++) जैसे लूप के लिए पारंपरिक का उपयोग करना चाहिए।

  2. सरणी से कुछ मान हटाने के लिए आपको दो तर्कों के साथ ब्याह का उपयोग करने की आवश्यकता है। यहां लिंक है https://www.w3schools.com/jsref/jsref_splice.asp

1
Kuldeep 30 मार्च 2018, 10:44