#angular #typescript
#angular #typescript
Вопрос:
Я хотел бы знать, как удалить «,» из последней записи вектора. Поскольку он печатает следующим образом: Имя навыка: навык 1, навык 2, навык 3, правильным было бы напечатать следующее: Имя навыка: навык 1, навык 2, навык 3
list(skillSelect) {
let naneSkil = "";
arrayList.forEach((skill, index) => {
if(skil.code === skillSelect.code) {
nameSkill = skill.name.concat(', ');
}
});
return nameSkill;
}
Комментарии:
1. nameskill = ArrayList.filter(навык => навык.код === skilSelect.code).join(‘,’);
Ответ №1:
Перед возвратом просто напишите nameSkill = nameskill.substr(0, nameskill.length - 2)
. Вы в основном берете подстроку исходной. В функции вы передаете начальную точку и конечную точку.
В вашем случае вам не нужны последние два символа, поэтому вы начинаете с самого начала слова ( 0
) и заканчиваете в конце минус 2 ( nameskill.length-2
)
Документация здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr
Имейте в виду, что есть другая функция, которая делает то же самое. Проверьте этот вопрос для этого аргумента: в чем разница между substr и substring ?
Комментарии:
1. Пожалуйста, объясните, что делает этот ответ, чтобы спрашивающий мог чему-то научиться из него.
Ответ №2:
Я считаю, что безопасным решением было бы использовать метод join для массивов, поэтому вам нужно сделать naneskill массивом, а не строкой. Соединение никогда не добавит ‘,’ к последнему элементу
list(skillSelect) {
let naneSkill = [];
arrayList.forEach(skill => {
if(skill.code === skillSelect.code) nameSkill.push(skill.name);
});
return nameSkill.join(',');
}