【发布时间】:2021-01-10 23:50:41
【问题描述】:
我有一个表单输入字段,我需要从中获取字符串值,并根据单词以逗号或空格结尾的天气将输入分组到单独的数组中。
我尝试获取输入字符串,然后使用逗号作为分隔符拆分字符串,然后将其推送到 commaArray,然后过滤该数组以获取由空格分隔的值并将其推送到空格数组。 我没有取得太大的成功。我还需要将输入字段中的最后一个单词与空格数组分组,所以基本上如果它不以逗号结尾,则该单词将与 spaceSeparatedArray 分组。
我也添加了代码并在 stackblitz 中重新创建 - 链接如下。
https://stackblitz.com/edit/primeng-chips-demo-ss6jy4?file=src%2Fapp%2Fapp.component.html
输入字符串:
"a, b, cd ef gh, ijkl, mnop"所需的输出数组:
commaSeparatedArray = ["a", "b", "gh", "ijkl"]
spaceSeparatedArray = ["cd", "ef", "mnop"]
HTML
<form
[formGroup]="aForm"
(ngSubmit)="onSubmit()">
Value: {{ aForm.value | json }}
<label>Comma Separator</label>
<input
formControlName="inputString"
>
<button type="submit">Submit</button>
</form>
打字稿
import { Component } from '@angular/core';
import {FormBuilder, FormControl, FormGroup} from '@angular/forms'
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
valuesArray: [];
aForm: FormGroup;
constructor(
private _formBuilder: FormBuilder
){
this.aForm = this._formBuilder.group({
inputString: new FormControl()
})
}
// INPUT:
// a, b, cd ef gh, ijkl mnop
onSubmit() {
let stringIn = this.aForm.get('inputString').value;
let commaSeparatedArray = [];
let spaceSeparatedArray = [];
stringIn = stringIn.split(',');
for(let i = 0; i <= stringIn.length; i++) {
commaSeparatedArray.push(stringIn[i]);
}
spaceSeparatedArray = commaSeparatedArray.filter(a=> a.includes(' '));
// OUTPUT
console.log("SpaceSeparatedArray: " +spaceSeparatedArray)
console.log("CommaSeparatedArray: " + commaSeparatedArray);
}
}
谢谢
【问题讨论】:
标签: javascript arrays angular typescript filter