Javascript 在map()的基础上使用JS reduce()

Javascript 在map()的基础上使用JS reduce(),javascript,Javascript,我有一组对象: let authors = [ { firstName: "Beatrix", lastName: "Potter" }, { firstName: "Ann", lastName: "Martin" }, ]; 我想在使用map()映射数组项之后统一细节,然后使用reduce()将对象缩减为单个字符串,这样输出将是“Beatrix Potter”、“Ann Martin” 我已尝试以下代码,但失败: fullAuthorNames = authors.map( (e)

我有一组对象:

let authors = [
  { firstName: "Beatrix", lastName: "Potter" },
  { firstName: "Ann", lastName: "Martin" },
];
我想在使用
map()
映射数组项之后统一细节,然后使用
reduce()
将对象缩减为单个字符串,这样输出将是
“Beatrix Potter”、“Ann Martin”

我已尝试以下代码,但失败:

fullAuthorNames = authors.map( (e)=> 
    authors.reduce( (firstName, lastName)=> firstName + lastName );
);
这是相关的输出:

[“[对象对象][对象对象对象][对象对象][对象对象对象][对象对象 对象]”,“[对象对象][对象对象][对象对象对象][对象对象 对象][对象对象]”

我在这里做错了什么?可能我没有正确地将数组中的对象作为目标?

使用a将每个对象转换为字符串,并将结果转换为字符串:

const作者=[
{姓:“碧翠丝”,姓:“波特”},
{姓:“安”,姓:“马丁”},
];
const result=authors.map(({firstName,lastName})=>`${firstName}${lastName}`)
.join(“,”);//如果需要字符串数组,请删除此项

console.log(result);
您不需要
reduce
,只需
map
然后
加入结果数组:

let fullAuthorNames = authors.map(a => a.firstName + " " + a.lastName).join(", ");
示例:

let authors=[
{姓:“碧翠丝”,姓:“波特”},
{姓:“安”,姓:“马丁”},
];
让fullAuthorNames=authors.map(a=>a.firstName+“”+a.lastName).join(“,”;

console.log(fullAuthorNames);
Array.Map将数组转换为另一个数组。Array.Reduce将数组聚合为值。它们通常用于串行

尝试:


正如上面的答案所示,“join”可能更简单,但不完全是您所要求的。

因为您正在将对象添加到一起……您没有处理键。。。
fullAuthorNames = authors.map(  (e)=> e.firstName + ' ' + e.lastName )
                         .reduce((accumulator, currentValue, index) =>
                                  accumulator + (index ? ', ' : '') + currentValue, '');