編碼新手我正在嘗試制作一個使單詞“縮寫/首字母縮略詞”的功能,例如“我愛你”->“伊莉”。我嘗試以多種方式重寫代碼,但 console.log 只顯示第一個給定單詞的第一個字母。
function makeAbbr(words) {
let abbrev = words[0];
let after = 0;
let i = 0;
for (const letter of words) {
if (letter === '') {
i = words.indexOf('', after);
abbrev = words[i 1];
}
after ;
}
return abbrev;
}
const words = 'a bc def';
let result = makeAbbr(words);
console.log(result)
uj5u.com熱心網友回復:
由于您想要使用您的方法的東西,試試這個(代碼已注釋)
function makeAbbr(words) {
let abbrev = "";
for (let i = 0; i < words.length - 1; i ) { // Loop through every character except the last one
if (i == 0 && words[i] != " ") { // Add the first character
abbrev = words[i];
} else if (words[i] == " " && words[i 1] != " ") { // If current character is space and next character isn't
abbrev = words[i 1];
}
}
return abbrev.toLowerCase();
}
const words = 'a bc def';
let result = makeAbbr(words);
console.log(result)
uj5u.com熱心網友回復:
這是我對您的功能的實作:將句子拆分為一個陣列,獲取每個單詞的第一個字母并將它們連接成一個字串。
const makeAbbr = string => string.split(' ').map(word => word[0]).join('');
console.log(makeAbbr('stack overflow'));
console.log(makeAbbr('i love you'));
`
uj5u.com熱心網友回復:
如果你想準確地使用你的方法,你在指定的行上有一個錯字。字符永遠不能是""(空字串),但字符可以是空格" "。修正此錯字可使您的解決方案發揮作用。
function makeAbbr(words) {
let abbrev = words[0];
let after = 0;
let i = 0;
for (const letter of words) {
if (letter === ' ') { // This line here
i = words.indexOf(' ', after);
abbrev = words[i 1];
}
after ;
}
return abbrev.toLowerCase(); // Also added .toLowerCase()
}
const words = 'a bc def';
let result = makeAbbr(words);
console.log(result)
uj5u.com熱心網友回復:
不使用陣列。但你真的應該了解它們。
- 首先修剪前導和尾隨空格。
- 將第一個字符添加到您的首字母縮寫詞中。
- 如果前一個字符是空格(而當前字符不是),則回圈遍歷字串的其余部分并將當前字符添加到首字母縮略詞中。
function makeAbbr(words) {
words = words.trim();
const length = words.length;
let acronym = words[0];
for(let i = 1; i < length; i ) {
if(words[i - 1] === ' ' && words[i] !== ' ') {
acronym = words[i];
}
}
return acronym;
}
console.log(makeAbbr('I love you'));
console.log(makeAbbr('I love you'));
console.log(makeAbbr(' I love you '));
uj5u.com熱心網友回復:
有幾件事讓你絆倒。
let abbrev = words[0];只是將您傳遞給函式的單詞字串的第一個字母,并在某個時候添加一些新內容。for (const letter of words) {...}:for/of陳述句用于迭代陣列,而不是字串。
這是您的代碼的混合版本。它仍然使用for/of,但這次我們從字串創建一個單詞陣列并對其進行迭代。
function makeAbbr(str) {
// Initialise `abbrev`
let abbrev = '';
// `split` the string into an array of words
// using a space as the delimiter
const words = str.split(' ');
// Now we can use `for/of` to iterate
// over the array of words
for (const word of words) {
// Now concatenate the lowercase first
// letter of each word to `abbrev`
abbrev = word[0].toLowerCase();
}
return abbrev;
}
console.log(makeAbbr('I love you'));
console.log(makeAbbr('One Two Three Four Five'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/476973.html
標籤:javascript
上一篇:lodash庫k-僅提取鍵
