Tengo una matriz que tiene objetos dentro:
[ {pointID: 1, pointName: "One" }, {pointID: 2, pointName: "Two" }, {pointID: 3, pointName: "Three" } ]Me gustaría unir todas las cadenas, es decir, pointName así: "One-Two-Three"
Cualquier ayuda es apreciada. Gracias.
Edición 1:
Esto es lo que probé hasta ahora:
this.viaPoints.forEach(x=> { var splitted = x.pointName.split(" "); console.log('I5: ',splitted[0].join("-")); });La razón por la que me dividí es porque la cadena tendrá caracteres adicionales algunas veces como "Uno - A". Así que he usado dividir para eliminar el extra
Edición 2: en mi caso, esto ayudó, como mencioné anteriormente, para eliminar caracteres y cadenas adicionales:
var permittedValues1 = this.viaPoints.map(value => value.pointName.split(" ")[0]).join("-") ;Puede usar la función Array.prototype.reduce para devolver una matriz que contiene pointName para cada objeto en la matriz y unir todos los valores de la matriz de retorno con - .
let data = [ {pointID: 1, pointName: "One" }, {pointID: 2, pointName: "Two" }, {pointID: 3, pointName: "Three" } ] let result = data.reduce((accumulator, current) => { return accumulator.concat(current.pointName); }, []).join('-'); console.log(result);También puede usar las funcionalidades .map y .join . Aquí .map tomará los valores basados en el nombre del punto clave y .join se usa para devolver una matriz como una cadena. Los elementos estarán separados por un separador específico (aquí "-").
let array = [ {pointID: 1, pointName: "One" }, {pointID: 2, pointName: "Two" }, {pointID: 3, pointName: "Three" } ]; var permittedValues = array.map(value => value.pointName).join("-") ;