मेरे पास वर्तमान में एक चर है जिसमें संख्याओं की एक सरणी है

let numbersArray = [12, 15, 19, 20];

इस पर लूपिंग करते समय मैं प्रविष्टि को हटाना चाहता हूं यदि यह एक निश्चित मान है

let numbersArray = [12,15,19,20],
    filteredNumbersArray = numbersArray.map(function(value)
    {
        if(value === 15)
        {
            //delete the value
        } else {
            return value * 2;
        }
    });

.filter() का उपयोग करने के संबंध में, मान परिवर्तनशील होना चाहिए, मैंने उदाहरण अपडेट किया है

मैंने MDN से खोजा है लेकिन map() के भीतर किसी तत्व को निकालने के बारे में कुछ नहीं मिला।

रबर डक ने भी मदद नहीं की

3
Ian 1 अप्रैल 2018, 18:58

3 जवाब

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

आप फ़िल्टर कर सकते हैं और फिर मैप कर सकते हैं

var array = [12, 15, 19, 20],
    result = array
        .filter(v => v !== 15)
        .map(v => 2 * v);
        
console.log(result);

या सभी सरणी जोड़तोड़ के स्विस चाकू का उपयोग करें: Array#reduce

var array = [12, 15, 19, 20],
    result = array.reduce((r, v) => v !== 15 ? r.concat(v): r, []);
        
console.log(result);

कुछ अनुकूलन के साथ

var array = [12, 15, 19, 20],
    result = array.reduce(function (r, v) {
        if (v !== 15) {
            r.push(2 * v);
        }
        return r;
    }, []);
        
console.log(result);
2
Nina Scholz 1 अप्रैल 2018, 16:30

आप कुछ ऐसा करना चाहते हैं:

const newNumberArray = numbersArray.filter(myNumber =>myNumber !== 15).map(n => n*2)

-1
yahyazini 1 अप्रैल 2018, 16:03

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

फ़िल्टर आपको बेहतर सर्वर दे सकता है
https://developer.mozilla.org/ en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

let numbersArray = [12,15,19,20],
filteredNumbersArray = numbersArray.filter(function(value)
{
    return value != 15
});

यह संख्या 15 के बिना एक सरणी लौटाएगा।

0
Dries Meerman 1 अप्रैल 2018, 16:05