#javascript #angular #typescript
Вопрос:
У меня есть массив, внутри которого есть объекты:
[
{pointID: 1, pointName: "One" },
{pointID: 2, pointName: "Two" },
{pointID: 3, pointName: "Three" }
]
Я хотел бы соединить все строки, т. е. Имя точки, следующим образом : «Один-два-три».
Любая помощь будет признательна. Спасибо.
Правка 1:
Это то, что я пробовал до сих пор:
this.viaPoints.forEach(x=> {
var splitted = x.pointName.split(" ");
console.log('I5: ',splitted[0].join("-"));
});
Причина, по которой я разделился, заключается в том, что в строке несколько раз будут дополнительные символы, такие как «Один — А». Поэтому я использовал разделение, чтобы удалить лишнее
Правка 2: В моем случае это помогло, как я уже упоминал выше, удалить лишние символы и строки:
var permittedValues1 = this.viaPoints.map(value => value.pointName.split(" ")[0]).join("-") ;
Комментарии:
1. Что вы пробовали до сих пор ?? Пожалуйста, всегда упоминайте о том, что вы уже пытались сделать !! «У меня проблема с программированием, решите ее за меня!!» — это не то, как предполагается использовать SO.
Ответ №1:
Вы также можете использовать .map
и .join
функциональные возможности. Здесь .map
будут приниматься значения, основанные на имени ключевой точки, и .join
используется для возврата массива в виде строки. Элементы будут разделены указанным разделителем (здесь «-«).
let array = [
{pointID: 1, pointName: "One" },
{pointID: 2, pointName: "Two" },
{pointID: 3, pointName: "Three" }
];
var permittedValues = array.map(value => value.pointName).join("-") ;
Ответ №2:
Вы можете использовать Array.prototype.reduce
функцию для возврата массива, содержащего pointName
для каждого объекта в массиве, и объединить все значения возвращаемого массива -
.
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);
Комментарии:
1.
.reduce(... => accumulator.concat(...))
это именно то, что.map
делает.