使用箭头函数中的for循环将数组中的第一个字符大写

问题描述 投票:0回答:4

目标是使数组中各项的首字母大写,但未打印出来

const words = ["planes", "trains", "automobiles"];
const singularWords = words.map(w => w.slice(0, -1))
// The below line should console.log: ["plane", "train", "automobile"]
console.log(singularWords);

// Bonus:
const capitalizedWords = words.map((w) => {
  for (let i = 0; i < words.length; i++) {
    words[i] = words[i].charAt(0).toUpperCase();
  }
});
// The below line should console.log: ["Planes", "Trains", "Automobiles"]
console.log(capitalizedWords);
javascript arrays for-loop arrow-functions
4个回答
2
投票

您映射并循环

只需映射,然后再次使用切片

PS:a discussion of w[0] vs w.charAt(0)

const words = ["planes", "trains", "automobiles"];
const singularWords = words.map(w => w.slice(0, -1))
// The below line should console.log: ["plane", "train", "automobile"]
console.log(singularWords);

// Bonus:
const capitalizedWords = words.map(w => w.charAt(0).toUpperCase()+w.slice(1));
// The below line should console.log: ["Planes", "Trains", "Automobiles"]
console.log(capitalizedWords);

0
投票

该功能-map()基本上在为您循环。

const words = ["planes", "trains", "automobiles"];
const singularWords = words.map(w => w.slice(0,-1))
// The below line should console.log: ["plane", "train", "automobile"]
console.log(singularWords);

// Bonus:
const capitalizedWords = words.map((w) => {
  return w.charAt(0).toUpperCase() + w.slice(1);
});
// The below line should console.log: ["Planes", "Trains", "Automobiles"]
console.log(capitalizedWords);

这里是正确的代码。

希望这会有所帮助!


0
投票
const words = ["planes", "trains", "automobiles"];
const singularWords = words.map(w => w.slice(0, -1))
// The below line should console.log: ["plane", "train", "automobile"]
console.log(singularWords);

// Bonus:
const capitalizedWords = words.map(w => w[0].toUpperCase()+w.slice(1));
// The below line should console.log: ["Planes", "Trains", "Automobiles"]
console.log(capitalizedWords);

仅使用地图。您可以dele charAt,并添加w [0]


0
投票

这更多是表示使用解构模式的替代方法。

想法

  • 在箭头功能中,对第一个参数使用解构模式
  • 具有2个变量:
    • firstChar:保留第一个字符,这将用于大写。
    • rest:其余字符。但是,由于我们使用的是散布运算符,因此它将是一个数组,因此必须使用.join('')

const words = ["planes", "trains", "automobiles"];
const singularWords = words.map(([ firstChar ]) => firstChar )
// The below line should console.log: ["plane", "train", "automobile"]
console.log(singularWords);

// Bonus:
const capitalizedWords = words.map(( [ firstChar, ...rest ] ) => firstChar.toUpperCase() + rest.join('') );
// The below line should console.log: ["Planes", "Trains", "Automobiles"]
console.log(capitalizedWords);
© www.soinside.com 2019 - 2024. All rights reserved.