javascript 编写一个getCapitals函数,该函数接受一个字符串,并返回一个数组,该数组包含字符串中顺序相同的所有大写字母[重复]

8wtpewkr  于 2023-02-21  发布在  Java
关注(0)|答案(2)|浏览(114)
    • 此问题在此处已有答案**:

How to append something to an array?(30个答案)
16小时前关门了。

function getCapitals(string) {
  var newString = [''];
  for (var i = 0; i < string.length; i++) {
    if (string[i] === string[i].toUpperCase()) {
      newString += string[i];
    }
  }
  return newString;
}

console.log(getCapitals("Madjbaj Avveyhe"));

预期值:["M", "A"]
结果:["M A"]

x8diyxa7

x8diyxa71#

您可以使用splitfilter在单行中获取结果

const getCapitals = (str) => str.split('').filter(c => c.trim() && c.toUpperCase() === c);

console.log(getCapitals("Madjbaj Avveyhe"));

您也可以在这里使用regex:

const getCapitals = (str) => str.match(/[A-Z]/g)

console.log(getCapitals("Madjbaj Avveyhe"));
z4iuyo4d

z4iuyo4d2#

  • 使用Array#push向数组添加元素。
  • 您可以使用正则表达式[A-Z]来匹配大写字母。这样,空格将不会被视为大写。
function getCapitals(string) {
  var newString = [];
  for (var i = 0; i < string.length; i++) {
    if (/[A-Z]/.test(string[i]))
      newString.push(string[i]);
  }
  return newString;
}

console.log(getCapitals("Madjbaj Avveyhe"));

这可以用String#match更简洁地表示。

function getCapitals(string) {
  return string.match(/[A-Z]/g);
}
console.log(getCapitals("Madjbaj Avveyhe"));

相关问题