Riy*_*iya 1 javascript arrays string formatting function
在我的程序中给出了名称的哈希数组。我想返回一个字符串,格式为以逗号分隔的名称列表,最后两个名称除外,这两个名称应由与号分隔。
例如
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 ''
Run Code Online (Sandbox Code Playgroud)
为此,我使用 map 函数映射对象数组的值,并使用切片提取数组的最后两个值,然后使用toString将其转换为字符串,然后使用split("&")在最后两个元素之间添加&符号,但我没有按预期获得输出。
代码:
function list(names){
let result = names.map(value => value.name);
return result.slice(-2).toString().split('&');
}
list([{name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'}]);
Run Code Online (Sandbox Code Playgroud)
这比这更棘手,因为您必须首先将列表中的最终名称与其余名称分开,然后再将join其余名称分开。如果有任何的休息,然后串联的连接字符串' and ',否则返回只有最后的名字:
function list(people){
const names = people.map(({ name }) => name);
const finalName = names.pop();
return names.length
? names.join(', ') + ' & ' + finalName
: finalName;
}
console.log(list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])) // returns 'Bart, Lisa & Maggie'
console.log(list([ {name: 'Bart'}, {name: 'Lisa'} ])) // returns 'Bart & Lisa'
console.log(list([ {name: 'Bart'} ])) // returns 'Bart'Run Code Online (Sandbox Code Playgroud)
请注意,输入不是names数组- 它是names稍后需要映射到的对象数组,因此您可以更精确地命名变量并给出list参数 of people(或类似的东西)而不是names.
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |