从多个字符串创建地址并用逗号分隔

时间:2017-10-13 07:19:52

标签: javascript angular

让我们想象一下,我有5个字符串,其中任何一个都可以填写或只是保持空白(它是基于用户输入的)

我想知道如何用逗号分隔它们。我觉得这个问题必须是微不足道的,但只有我发现它会起作用并且不是完全愚蠢的想法是:

// Create a function which return me string of arrays
public getAddress(): string[] {
    let result = [];
    if (this.application.applicant.city) {
        result.push(this.application.applicant.city);
    }
    if (this.application.applicant.postalCode) {
        result.push(this.application.applicant.postalCode);
    }
    if (this.application.applicant.state && this.application.applicant.state.name) {
        result.push(this.application.applicant.state.name);
    }
    return result
}
// Then somewhere in ngOnInit() just call this method:
this.address = this.getAddress();

在我的tempalte里面:

<span *ngFor="let item of address; let isLast=last">
   {{item}}{{isLast ? '' : ', '}}
</span>

或clasic JS方式:

<span> {{address.join(", ")}} </span>

我仍然觉得这太复杂了。我错过了一些简单的解决方案吗? 谢谢你的任何建议

2 个答案:

答案 0 :(得分:0)

分割 字符串有一个打字稿功能。它还会删除

this.addres = this.address.split(', '); // this is now an array instead of a string.

修改

我创建了一个字符串,但 newValue 中的newValue可以是任何内容。

let string = '';
if() {
   string = `${string}, ${newValue}`;
}

答案 1 :(得分:0)

这里有一个示例解决方案,你可以在你的方法中创建地址的字符串并直接在你的html模板中显示它(我认为它比在数组上迭代更简单..)

在你的.ts:

address : string ;
// Create a function which return me string of arrays
public getAddress(): string {
    let result = "";
    if (this.application.applicant.city) {
        result.push(this.application.applicant.city+",");
    }
    if (this.application.applicant.postalCode) {
        result.push(this.application.applicant.postalCode+",");
    }
    if (this.application.applicant.state && this.application.applicant.state.name) {
        result.push(this.application.applicant.state.name+",");
    }
    if (result.length !== 0 )
        result.substring(0, result.length-1);

    return result

}
// Then somewhere in ngOnInit() just call this method:
this.address = this.getAddress();
HTML模板中的

<span>{{address}}</span>

希望有所帮助:)