如何更新 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);