在我的角向项目中,我的一种表单具有以下结构:
this.serviceForm = this.formBuilder.group({
[...],
options: this.formBuilder.array([
this.formBuilder.group({
[...],
availabilities: this.formBuilder.array([
this.formBuilder.group({
[...],
price: ['', Validators.required]
})
])
})
])
});
我想在我的表格中找到最低价格。 我已经尝试过了,但是我敢肯定有更好的方法:
getMinPrice(serviceForm: FormGroup) {
let min = serviceForm.value.options[0].availabilities[0].price;
serviceForm.value.options.forEach(i => {
i.availabilities.forEach(j => {
if (j.price < min) {
min = j.price;
}
});
});
return min;
}
感谢您的回答。
答案 0 :(得分:0)
考虑到您不关心分钟的上下文。价格,您可以简单地跨嵌套对象收集价格值,然后执行最小值。使用 mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// This method is called once with the initial value and again
// whenever data at this location is updated.
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
AlaramData usersList = dataSnapshot.getValue(AlaramData.class);
String name = usersList.getStatus();
childList.add(usersList);
// here you can access to name property like university.name
}
Log.d("", "Value is: " + childList);
//Create a List of Section DataModel implements Section
sections.add(new SectionHeader(childList, "2018", 1));
adapterRecycler.notifyDataSetChanged();
}
搜索。
尝试以下操作:
Math.min
侧注:接口通常是不完整的,我定义它们是为了在编辑器中进行类型推断。
答案 1 :(得分:-1)
您可以使用apply
对数组运行标准的Math
方法:
const values = [3, 5, 6, 2, 45, 6, 32];
const min = Math.min.apply(null, values);
const max = Math.max.apply(null, values);
console.log(min, max);
因此,您只需选择j.price
值并通过该机制运行它们即可。