将数组中的第二项大写

我想将数组中的第二个单词大写,我根据索引号尝试了它,但是我得到了 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 }

})


慕姐8265434
浏览 109回答 3
3回答

慕村9548890

只是第二项吗?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']));

白衣染霜花

在循环中计算偶数和奇数并改变每秒记录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++) {&nbsp; &nbsp; if (i % 2 !== 0) {&nbsp; &nbsp; &nbsp; &nbsp; arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);&nbsp; &nbsp; }}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;&nbsp; i += 2) {&nbsp; &nbsp; 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) {&nbsp; &nbsp; arr[1] = arr[1].charAt(0).toUpperCase() + arr[1].slice(1);} else {&nbsp; &nbsp; arr[0] = arr[0].charAt(0).toUpperCase() + arr[0].slice(1);}console.log(arr);

慕桂英3389331

仅将第二个单词大写,为此,我们不必迭代数组,只需检查数组是否大于或等于长度 2,如果是,则只需将第二个单词大写并保持剩余元素不变,这样会花费更多时间也很高效,因为我们只需在某个索引中执行查找,而不是迭代整个数组:let segment = ["", "to", "capitalize", "the","second","word","in","the","array"];if(segment.length >=2){&nbsp; &nbsp;segment[1] = segment[1][0].toUpperCase() + segment[1].substr(1);}console.log(segment );如果第一个元素为空字符串,则将第二个单词大写:let segment = [&nbsp; "",&nbsp; "want",&nbsp; "to",&nbsp; "capitalize",&nbsp; "the",&nbsp; "second",&nbsp; "word",&nbsp; "in",&nbsp; "t",&nbsp; "array",];let sentense = segment.join(" ").trim();sentense = sentense[0].toUpperCase() + sentense.substr(1);console.log(sentense.split(" "));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript