मेरे पास नीचे यह सरल सरणी है, उदाहरण के लिए:

[
  { team: { name: 'Newport County AFC' } },
  { team: { name: 'Southport FC' } },
  { team: { name: 'AFC Fylde' } },
  { team: { name: 'FC United' } }
]

मैं केवल स्ट्रिंग के अंतिम भाग/घटना पर दिए गए टीम नामों के FC और AFC सबस्ट्रिंग को हटाना चाहता हूं।

मैं केवल नीचे इस कोड के साथ आ सकता हूं, जिसे आप यहां भी देख सकते हैं।

arr.forEach(function(key, index, array)
{
    let teamname = key.team.name.replace(/AFC|FC/g,'');
    array[index] = teamname;
});

हालाँकि, एक समस्या है, क्यों? क्योंकि कुछ टीम के नाम FC या AFC से शुरू होते हैं, इस प्रकार उन्हें हटा दिया जाएगा और साथ ही मेरा दृष्टिकोण रिक्त स्थान के साथ तार छोड़ देता है, जो कि इच्छित तरीका नहीं है।

मेरा अपेक्षित आउटपुट है:

['Newport County', 'Southport', 'AFC Fylde', 'FC United']

तो मैं इसे कैसे हासिल करूं? क्या कोड या बेहतर समाधान में सुधार करने का कोई तरीका है?

4
skyline33 26 जिंदा 2019, 22:31

3 जवाब

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

आप स्ट्रिंग के अंत को भी देख सकते हैं।

var array = [{ team: { name: 'Newport County AFC' } }, { team: { name: 'Southport FC' } }, { team: { name: 'AFC Fylde' } }, { team: { name: 'FC United' } }];

array.forEach(function(object) {
    object.team.name = object.team.name.replace(/\s*(AFC|FC)$/, '');
});

console.log(array);
2
Nina Scholz 26 जिंदा 2019, 22:37

यहां एक अलग रेगेक्स के साथ बदलें का उपयोग करने का विकल्प दिया गया है

   var teams = [
      {
        team: { name: 'Newport County AFC' }
      },
      {
        team: { name: 'Southport FC' }
      },
      {
        team: { name: 'AFC Fylde' }
      },
      {
        team: { name: 'FC United' }
      }
    ]
    var junk = (/\sA?FC/g)
    var newTeams = teams.map((t) => {
    return t.team.name.replace(junk, "")
    })
    console.log(newTeams)
    
    
    
2
stever 26 जिंदा 2019, 22:55

आप Array::map()< का उपयोग कर सकते हैं /a> और String::replace यह पता लगाना कि क्या आप जिस स्ट्रिंग को बदलना चाहते हैं, वह $ का उपयोग करके अंत में है। साथ ही, आप String::trim( ) परिणामी स्ट्रिंग के दोनों सिरों से व्हाइटस्पेस को हटाने के लिए।

const input = [
    {team: {name: 'Newport County AFC'}},
    {team: {name: 'Southport FC'}},
    {team: {name: 'AFC Fylde'}},
    {team: {name: 'FC United'}}
];

let res = input.map(
    ({team: {name}}) => name.replace(/AFC$|FC$/, "").trim()
);

console.log(res);
2
Shidersz 26 जिंदा 2019, 22:46