Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用逗号&;将数组元素连接到字符串中;符号?_Javascript_Arrays_String_Function_Formatting - Fatal编程技术网

Javascript 如何使用逗号&;将数组元素连接到字符串中;符号?

Javascript 如何使用逗号&;将数组元素连接到字符串中;符号?,javascript,arrays,string,function,formatting,Javascript,Arrays,String,Function,Formatting,在我的程序中,给定了名称的哈希数组。我想返回一个字符串,该字符串的格式为名称列表,名称之间用逗号分隔,最后两个名称除外,这两个名称应该用符号和分隔 例如 list([{ name: 'Bart' }, { name: 'Lisa' }, { name: 'Maggie' }]); // returns 'Bart, Lisa & Maggie' list([{ name: 'Bart' }, { name: 'Lisa' }]); // returns 'Bart & Lisa

在我的程序中,给定了名称的哈希数组。我想返回一个字符串,该字符串的格式为名称列表,名称之间用逗号分隔,最后两个名称除外,这两个名称应该用符号和分隔

例如

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 ''
为此,我使用map函数映射一个对象数组的值,并使用slice提取数组的最后两个值,然后使用
toString
将其转换为字符串,然后使用
split(&“)
在最后两个元素之间添加符号,但我没有按照预期得到输出

代码:


您可以
pop
数组中的最后一个项目,
使用逗号连接
其余项目,然后在最后一个项目后面添加一个符号和。更新代码:

功能列表(名称){
if(names.length==0)返回“”;
if(names.length==1)返回名称[0].name;
让result=names.map(value=>value.name);
让lastName=result.pop();
返回结果。join(“,”)+“&+lastName;
}
让string=list([{name:'Bart'},{name:'Lisa'},{name:'Maggie'}]);

console.log(字符串)
您可以
弹出
数组中的最后一个项目,
使用逗号连接
其余项目,然后在最后一个项目后面附加一个符号和。更新代码:

功能列表(名称){
if(names.length==0)返回“”;
if(names.length==1)返回名称[0].name;
让result=names.map(value=>value.name);
让lastName=result.pop();
返回结果。join(“,”)+“&+lastName;
}
让string=list([{name:'Bart'},{name:'Lisa'},{name:'Maggie'}]);

console.log(字符串)这比这有点棘手,因为您首先必须将列表中的最终名称从其余名称中分离出来,然后加入其余名称。如果其余部分中有,则用
和'
连接连接的字符串,否则只返回最终名称:

功能列表(人员){
const names=people.map(({name})=>name);
const finalName=names.pop();
返回name.length
?名称。连接(“,”)+“&”+最终名称
:最终名称;
}
log(list([{name:'Bart'},{name:'Lisa'},{name:'Maggie'}])//返回'Bart,Lisa和Maggie'
log(list([{name:'Bart'},{name:'Lisa'}])//返回'Bart&Lisa'

log(list([{name:'Bart'}])//返回'Bart'
这有点棘手,因为您必须首先将列表中的最终名称与其余名称分开,然后加入其余名称。如果其余部分中有,则用
和'
连接连接的字符串,否则只返回最终名称:

功能列表(人员){
const names=people.map(({name})=>name);
const finalName=names.pop();
返回name.length
?名称。连接(“,”)+“&”+最终名称
:最终名称;
}
log(list([{name:'Bart'},{name:'Lisa'},{name:'Maggie'}])//返回'Bart,Lisa和Maggie'
log(list([{name:'Bart'},{name:'Lisa'}])//返回'Bart&Lisa'

console.log(list([{name:'Bart'}])//返回'Bart'
仅在以下两个条件中输入代码:

  • 如果列表中只有一个名称
  • 或列表中的多个名称
功能myCustomList(个人){
names=persons.map(({name})=>name);
lastName=names.pop();
返回names.length?names.join(“,”)+“&+lastName:lastName;
}
//在警告框中查看您的答案

警报(myCustomList([{name:'Bart'},{name:'Lisa'},{name:'Maggie'}])仅在以下两种情况下输入代码:

  • 如果列表中只有一个名称
  • 或列表中的多个名称
功能myCustomList(个人){
names=persons.map(({name})=>name);
lastName=names.pop();
返回names.length?names.join(“,”)+“&+lastName:lastName;
}
//在警告框中查看您的答案

警报(myCustomList([{name:'Bart'},{name:'Lisa'},{name:'Maggie'}])你想问什么问题?密切相关(甚至可能重复?):你想问什么问题?密切相关(甚至可能重复?):谢谢@kfedorov91的回答。但是reult.pop()做什么呢?它是否从数组中删除所有元素?@Riya是的,
result.pop()
从数组中删除最后一项。感谢@kfedorov91的回答。但是reult.pop()做什么呢?它是否从数组中删除所有元素?@Riya yes,
result.pop()
从数组中删除最后一项。
function list(names){
   let result = names.map(value => value.name);
   return result.slice(-2).toString().split('&');
}

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