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, '');