javascript - 将数组转换为由字符串分隔的 React 组件数组

标签 javascript reactjs ecmascript-6

如何转换如下所示的字符串数组

var players = ['ronaldo','messi','naymar','suarez','ozil']

进入如下所示的jsx语句

<b>ronaldo</b> and <b>messi</b> and <b>naymar</b> and <b>suarez</b> and <b>ozil</b> and <b></b>

我尝试使用 .map.join 如下所示

players.map(player => <b>player</b>).join('and');

但是结果是这样的

[object Object] and [object Object] and [object Object] and [object Object]......

我怎样才能做到这一点?提前致谢

最佳答案

join 将数组的所有元素连接到一个字符串中,因此很难将其与 JSX 一起使用,因为 JSX 只是一堆 React.createElement 调用在幕后。

你可以使用 React.Fragment而是为数组中除最后一个之外的所有条目添加

players.map((p, index) => (
  <Fragment>
    <b> {p} </b> {players.length - 1 !== index && "and"}
  </Fragment>
));

关于javascript - 将数组转换为由字符串分隔的 React 组件数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51206055/

相关文章:

php - .html() 调用后 Jquery 延迟被忽略

javascript - Fetch() 的响应未定义

javascript - 来自 React Hook 内部的变量 useEffect 将在每次渲染后丢失

javascript - 动态添加javascript打字计时器

javascript - JS中 "Use Strict"的好处

reactjs - webpack + 代码分割出现 "React attempted to reuse markup"错误

reactjs - 如何在 JSX 中实现 for 循环等效?

javascript - 为什么现在字符串模板比字符串连接更受欢迎?

javascript - 了解 ES6 中数组的区别?

javascript - 为什么在 `array#reduce` 内部返回一个函数而不是仅仅传递一个函数