如何更新 Angular 中除当前索引之外的对象 8
How to update object except current index in Angular 8
this.StaticData = {
"values": [
{
"value": "test",
"label": "test"
},
{
"value": "aa",
"label": "bb"
},
{
"value": "cc",
"label": "dd"
}
]
};
我有上面的数据对象。我想 return 除 currentIndex
之外的所有对象。
例如-
假设在上面的对象中,如果我要编辑 0th
索引值,
我更新了 "value": "rest"
,而不是 "value": "test"
和
"label": "test"
需要保持原样。所以在那种情况下,
它将允许更新值。
{
"value": "rest",
"label": "test"
},
但是如果我尝试输入 "label": "bb"
和 "label": "dd"
,
所以它会 return false
,因为这些值在上面的对象中已经可用。
isLabelExist() {
const formData = this.editStaticParametersForm.value;
const currentIndex: number = this.StaticData.values.indexOf(this.selectedRowValue);
if (formData.label_value && this.StaticData) {
var isPresent = this.StaticData.values.some(function (el) {
return el.label === formData.label_value
});
if (isPresent) {
return false;
}
}
return true;
}
使用查找(或某些)您可以检查“索引”(向函数查找添加第二个参数),因此,
var isPresent = this.StaticData.values.some(function (el,i) {
return el.label === formData.label_value && i!=currentIndex
});
实际上在 .ts 中我们使用 arrow flat 并使用 const 或 let,而不是 var
const isPresent = this.StaticData.values.some((el,i)=> {
return el.label === formData.label_value && i!=currentIndex
});
或者
const isPresent = this.StaticData.values.some(
(el,i)=> el.label === formData.label_value && i!=currentIndex);
this.StaticData = {
"values": [
{
"value": "test",
"label": "test"
},
{
"value": "aa",
"label": "bb"
},
{
"value": "cc",
"label": "dd"
}
]
};
我有上面的数据对象。我想 return 除 currentIndex
之外的所有对象。
例如-
假设在上面的对象中,如果我要编辑 0th
索引值,
我更新了 "value": "rest"
,而不是 "value": "test"
和
"label": "test"
需要保持原样。所以在那种情况下,
它将允许更新值。
{
"value": "rest",
"label": "test"
},
但是如果我尝试输入 "label": "bb"
和 "label": "dd"
,
所以它会 return false
,因为这些值在上面的对象中已经可用。
isLabelExist() {
const formData = this.editStaticParametersForm.value;
const currentIndex: number = this.StaticData.values.indexOf(this.selectedRowValue);
if (formData.label_value && this.StaticData) {
var isPresent = this.StaticData.values.some(function (el) {
return el.label === formData.label_value
});
if (isPresent) {
return false;
}
}
return true;
}
使用查找(或某些)您可以检查“索引”(向函数查找添加第二个参数),因此,
var isPresent = this.StaticData.values.some(function (el,i) {
return el.label === formData.label_value && i!=currentIndex
});
实际上在 .ts 中我们使用 arrow flat 并使用 const 或 let,而不是 var
const isPresent = this.StaticData.values.some((el,i)=> {
return el.label === formData.label_value && i!=currentIndex
});
或者
const isPresent = this.StaticData.values.some(
(el,i)=> el.label === formData.label_value && i!=currentIndex);