Estoy creando una tabla en React usando la interfaz de usuario del material y tratando de descubrir cómo extraer la ubicación del elemento de itemInfo y almacenarla en una nueva columna en la tabla. Sé que puedo hacerlo desde el back-end, pero no puedo, y todo lo que quiero es poder extraer la cadena de la información del elemento. Proporcioné un ejemplo de cómo debería verse la tabla y lo pondré, así como un fragmento de código de muestra, y espero que esto ayude porque así es como estaba pensando en hacerlo, y esperaba que si alguien supiera cómo podría hacerlo sin entrar en el backend.
codigo sencillo
const columns1 = [{ field: "itemInfo", headerName: "itemInfo", headeralign: "center", align: "left", width: "136", type: "string", editable: true, }, { field: "itemlocation", headerName: " itemlocation", headeralign: "center", align: "left", width: "136", type: "string", editable: true, renderCell: (params) => { return ( <> </> ); } },]datos json
const Rows =[{ "id": "2433-10", "busiName": "ABC", "srTypeId": "2433-10", "nodeType": "0", "pathName": "home", "busiSort": 10, "itemInfo": "1:sql test question: itemlocation=USA", "superTypeId": "002",}]Tabla MUI original
| Identificación del producto | nombre del árticulo | itemInfo |
|---|---|---|
| 12 | coche | 1: pregunta de prueba sql: ubicación del artículo = EE. UU. |
| 99 | juguete | 1: pregunta de prueba sql: ubicación del artículo = EE. UU. |
Quiero extraer solo la ubicación de elementos de itemInfo en nuevas columnas de tabla
| Identificación del producto | nombre del árticulo | itemInfo | ubicación del artículo |
|---|---|---|---|
| 12 | coche | 1: pregunta de prueba sql: ubicación del artículo = EE. UU. | EE.UU |
| 99 | juguete | 1: pregunta de prueba sql: ubicación del artículo = EE. UU. | CADENA |
Si ya tiene acceso a itemInfo , puede ejecutar un método similar al siguiente
const extractLocation = (itemInfo) => { return itemInfo.match(/itemlocation=(.*)/)[1] } Esto utiliza la coincidencia de expresiones regulares para encontrar solo el texto después de la itemlocation . Si espera que se agregue otro texto que no es la ubicación a su cadena itemInfo más adelante, puede actualizarlo para excluir ese texto.
Para llamar a este método (suponiendo que sus datos json sean una matriz de objetos), podría hacerlo.
const location = extractLocation(json[0]['iteminfo']) // or for all locations const locations = json.map((item) => { return extractLocation(item['itemInfo']) }let newFormat = items.map(item => { return { newProperty: item.oldProperty } });