//自己解法
function list(names){
console.log(names)
let rea = names.length
if(rea > 2){
let res = ''
for(let i=0; i < rea -1; i++){
res += i==0 ? `${names[i].name}` : `, ${names[i].name}`
console.log(res)
}
res += ` & ${names[rea-1].name}`
console.log(res,'111')
return res
}
if(rea == 0){
return ""
}
if(rea == 1){
return names[0].name
}
if(rea == 2){
return `${names[0].name} & ${names[1].name}`
}
}
//大佬解法
function list(names){
return names
.map((item) => item.name)
.join(', ')
.replace(/,\s([^,]+)$/, ' & $1');
}
Test.assertEquals(list([{name: 'Bart'},{name: 'Lisa'},{name: 'Maggie'},{name: 'Homer'},{name: 'Marge'}]), 'Bart, Lisa, Maggie, Homer & Marge',
"Must work with many names")
Test.assertEquals(list([{name: 'Bart'},{name: 'Lisa'},{name: 'Maggie'}]), 'Bart, Lisa & Maggie',
"Must work with many names")
Test.assertEquals(list([{name: 'Bart'},{name: 'Lisa'}]), 'Bart & Lisa',
"Must work with two names")
Test.assertEquals(list([{name: 'Bart'}]), 'Bart', "Wrong output for a single name")
Test.assertEquals(list([]), '', "Must work with no names")
console