为了账号安全,请及时绑定邮箱和手机立即绑定

将数组中的第二项大写

将数组中的第二项大写

慕姐8265434 2023-07-14 09:36:31
我想将数组中的第二个单词大写,我根据索引号尝试了它,但是我得到了 undefined for array[i+1]。还有别的办法吗?const filteredSegments = segments.map((segment, i, array) => {    const hide = i === 0 && new RegExp(namePatterns.join('|'), 'i').test(segment.words)    const next = array[i + 1]    if (hide && next) { next.words.toUpperCase() }    return { ...segment, words: hide ? segment.words.replace(/./g, '\u200c') : segment.words }})
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

只是第二项吗?


function capitalizeSecondItem(arr) {

  if (arr.length > 1) {

    arr[1] = arr[1].charAt(0).toUpperCase() + arr[1].slice(1);

  }


  return arr;

}


console.log(capitalizeSecondItem(['hello', 'world']));

console.log(capitalizeSecondItem(['foo']));

console.log(capitalizeSecondItem([]));

console.log(capitalizeSecondItem(['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']));

查看完整回答
反对 回复 2023-07-14
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

在循环中计算偶数和奇数并改变每秒记录


var arr = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit', 'esse', 'voluptatibus', 'illum', 'fuga', 'quae', 'consequatur', 'pariatur']



for (var i = 0; i < arr.length; i++) {

    if (i % 2 !== 0) {

        arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);

    }

}


console.log(arr);


第二个选项: 解决该任务的另一种方法是我们通过两个值循环数组


var arr = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit', 'esse', 'voluptatibus', 'illum', 'fuga', 'quae', 'consequatur', 'pariatur']


for (var i = 1; i < arr.length;  i += 2) {

    arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);

}


console.log(arr);


回答帖子下面评论中的问题:


(“如果第一个单词是空字符串,我只想将第二个单词大写”)


该代码检查数组中的第一个字符串是否为空,如果条件为真,则检查是否存在第二个字符串...它执行第二个字符串的任务。


如果有第一个字符串,则执行第一个 -> 的任务(如果不需要,只需删除else)


var arr = ['', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit', 'esse', 'voluptatibus', 'illum', 'fuga', 'quae', 'consequatur', 'pariatur']



if (arr[0].length === 0 && arr.length > 1) {

    arr[1] = arr[1].charAt(0).toUpperCase() + arr[1].slice(1);

} else {

    arr[0] = arr[0].charAt(0).toUpperCase() + arr[0].slice(1);

}



console.log(arr);


查看完整回答
反对 回复 2023-07-14
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

仅将第二个单词大写,为此,我们不必迭代数组,只需检查数组是否大于或等于长度 2,如果是,则只需将第二个单词大写并保持剩余元素不变,这样会花费更多时间也很高效,因为我们只需在某个索引中执行查找,而不是迭代整个数组:


let segment = ["", "to", "capitalize", "the","second","word","in","the","array"];


if(segment.length >=2){

   segment[1] = segment[1][0].toUpperCase() + segment[1].substr(1);

}


console.log(segment );


如果第一个元素为空字符串,则将第二个单词大写:


let segment = [

  "",

  "want",

  "to",

  "capitalize",

  "the",

  "second",

  "word",

  "in",

  "t",

  "array",

];


let sentense = segment.join(" ").trim();

sentense = sentense[0].toUpperCase() + sentense.substr(1);


console.log(sentense.split(" "));


查看完整回答
反对 回复 2023-07-14
  • 3 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信