gpt4 book ai didi

Javascript 试图格式化一串名称

转载 作者:行者123 更新时间:2023-11-30 07:30:46 24 4
gpt4 key购买 nike

尝试输出:

list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])
// returns 'Bart, Lisa & Maggie'

list([ {name: 'Bart'}, {name: 'Lisa'} ])
// returns 'Bart & Lisa'

list([ {name: 'Bart'} ])
// returns 'Bart'

list([])
// returns ''

我的代码:

function list(names){
let output = "";
let length = names.length;
for(i=0; i < length; i++){
if(length > 2 && i !== length - 1){
output += names[i]['name'] + ', ' ;
}
else if( i == length - 1 && i !== 0) {
output += ' & ' + names[i]['name'] ;
} else{
output += names[i]['name'];
}
}
return output;
}

预期:'Bart、Lisa、Maggie、Homer & Marge',而不是:'Bart、Lisa、Maggie、Homer 和 Marge'

知道为什么 if 语句不能正常工作吗?我似乎无法让它工作。

最佳答案

思路是

  1. 从输入的对象数组中获取名称数组。
  2. 现在获取数组的长度。
  3. 使用 pop 获取数组的最后一个元素。
  4. 现在检查长度,如果长度为 0,则返回 空字符串,如果 1,我们只返回名称,如果大于 1 比用 ,&last
  5. 加入输入

function list(input){
input = input.map(({ name }) => name )
let length = input.length
let last = input.pop()
let op = length === 0 ? "" : length === 1 ? last : input.join(',') + ' & ' +last
console.log(op)
}

list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])
list([ {name: 'Bart'}, {name: 'Lisa'} ])
list([ {name: 'Bart'} ])
list([])

关于Javascript 试图格式化一串名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com