Estas cuatro líneas se almacenan como una matriz de objetos en ptr
["NF: (Chuckling)","EM: And we taught not very long. Ms. Fox (ph) took my place. I met Ethan and we","were married in February (Chuckling). I had taught from September to February--","NF: Wow!"]Estoy tratando de mostrar esto en jsx línea por línea y poner en negrita cada palabra antes de los dos puntos si en alguna línea no hay dos puntos, entonces no debería poner en negrita toda la línea como se muestra a continuación, solo pone en negrita la palabra antes de los dos puntos si hay dos puntos en la línea.
NF : (Riéndose)
EM : Y enseñamos no mucho tiempo. La Sra. Fox (ph) tomó mi lugar. Conocí a Ethan y nosotros
se casaron en febrero (Riéndose). Yo había enseñado de septiembre a febrero--
NF : ¡Guau!
<p key={k}>{ptr.split(/(?=:)/).map((x,i)=> i===0 ? <b key={i}>{x}</b> : x) } </p>)Debe verificar si la matriz que está procesando dentro de .map() contiene más de un elemento (para verificar si realmente ocurrió una división y la cadena se dividió en al menos dos partes).
Agregue el tercer argumento a .map() y agregue la && arr.length>1 :
<p key={k}>{ptr.split(/(?=:)/).map((x,i,arr)=> i===0 && arr.length>1 ? <b key={i}>{x}</b> : x) } </p>)