Tengo una serie de cadenas como esta. Tanto la parte izquierda como la derecha de la cadena están separadas por espacios (más de 1 espacio para cada una).
const arr = [ 'A1789 Other tuberculosis of nervous system', 'A179 Tuberculosis of nervous system, unspecified', 'A1801 Tuberculosis of spine' ];Necesito convertir esto en una matriz de objetos como este, con la primera parte como la clave y la segunda parte como el valor de la clave.
const arrOfObj = [ { A1789: 'Other tuberculosis of nervous system' }, { A179: 'Tuberculosis of nervous system, unspecified' }, { A1801: 'Tuberculosis of spine' } ];Dividiría por espacio, asumiendo que su clave no puede contener espacio. Así que tendremos el primer elemento de su clave y el "resto" de su valor, que podemos recortar
arr.map(s => { const [key, ...value] = s.split(" "); return { [key]: value.join(" ").trim() } })Creo que algo como esto funcionaría:
const arrOfObj = {}; arr.forEach(item => { const match = str.match(/^([A-Za-z0-9]+)\s+(.+)/); arrOfObj[match[1]] = match[2]; });