映射数组中的属性并在JavaScript es6中连接一个字符串

时间:2016-07-21 06:13:44

标签: javascript arrays string ecmascript-6

我有以下对象数组,例如一些作者,我想通过它们进行映射并返回一个已与某些格式连接的字符串。我出于某种原因对这个相当容易的事情存在问题。

YoutubeStandalonePlayer

我怎样才能将其映射并将其格式化为字符串?

e.g。 const authors = [ { id: 1, name: 'Steven'}, {id: 2, name: 'Nick'}] let names = authors.map( (a, i) => { return `${a.name} is cool` }) console.log(names) // ["Steven is cool","Nick is cool"] // but I really want the string "Steven is cool Nick is cool"

3 个答案:

答案 0 :(得分:14)

使用Array#Join

authors.map((a) => `${a.name} is cool`).join(' ');

DEMO

注意:join与ES6无关,它已经过时了。

答案 1 :(得分:2)

我更喜欢使用reduce

ES5版

autors.reduce(function (str, person) { 
  return (str+' '+person.name+ ' is cool');
}, ''); 

ES6版

autors.reduce((str, person) => `${str} ${person.name} is cool`, '');

答案 2 :(得分:0)

这是另一个版本,因此您无需映射 - >加入..你可以减少。

const authors = [ { id: 1, name: 'Steven'}, {id: 2, name: 'Nick'}]

console.log(authors.reduce( (p,c) => `${p} ${c.name} is cool `, ""))