如果在 Angular 中为 Null,则将值设置为 0
Set Value as 0 if its is Null in Angular
我想传递一个变量的值,如果它是 null,然后在 Angular
中调度它时自动将其值设置为 0
this.myForm = this.formBuilder.group({
id: [null, Validators.required],
productPrice: [0],
finalPrice: [0],
remarks: [null],
});
onCreate(form: FormGroup) {
console.log(form.value)
this.store.dispatch(form.value)
}
如果参数的左侧为 null
,则可以对参数的右侧 return 使用 nullish 合并运算符
const a = null;
const b = 5;
console.log( a ?? 0 ); // returns 0
console.log( b ?? 0 ); // returns 5
如果您确实想在评估后设置左侧,您也可以将此运算符与赋值一起使用 ??=
。
一种方法是使用 Array#reduce
和 Object.keys()
函数手动检查值,或者 ||
在值为 null
时使用 0
或 undefined
.
尝试以下方法
onCreate(form: FormGroup) {
const value = Object.keys(form.value).reduce((acc, curr) => {
acc = { ...acc, [curr]: form.value[curr] || 0 }; // update: `curr` must be `[curr]`
return acc;
}, Object.create(null)); // update: closing curly brace
console.log(value);
this.store.dispatch(value);
}
我想传递一个变量的值,如果它是 null,然后在 Angular
中调度它时自动将其值设置为 0 this.myForm = this.formBuilder.group({
id: [null, Validators.required],
productPrice: [0],
finalPrice: [0],
remarks: [null],
});
onCreate(form: FormGroup) {
console.log(form.value)
this.store.dispatch(form.value)
}
如果参数的左侧为 null
,则可以对参数的右侧 return 使用 nullish 合并运算符const a = null;
const b = 5;
console.log( a ?? 0 ); // returns 0
console.log( b ?? 0 ); // returns 5
如果您确实想在评估后设置左侧,您也可以将此运算符与赋值一起使用 ??=
。
一种方法是使用 Array#reduce
和 Object.keys()
函数手动检查值,或者 ||
在值为 null
时使用 0
或 undefined
.
尝试以下方法
onCreate(form: FormGroup) {
const value = Object.keys(form.value).reduce((acc, curr) => {
acc = { ...acc, [curr]: form.value[curr] || 0 }; // update: `curr` must be `[curr]`
return acc;
}, Object.create(null)); // update: closing curly brace
console.log(value);
this.store.dispatch(value);
}