簡體   English   中英

如何刪除 TypeScript 中 Object 數組中具有空值的鍵?

[英]How can remove keys with empty values in an Object Array in TypeScript?

我正在嘗試在我的 Angular 8 項目中編寫 function。 我有一個對象數組,並且想要刪除值為空的所有鍵:值對。 互聯網上有很多例子,但似乎沒有一個對我有用。

我有的:

{
        "flightID": "FooID",
        "direction": "DownFoo",
        "msgType": "FooType",
        "elemNb": "",
        "msgID": "",
    },
    {
        "flightID": "FooID2",
        "direction": "UpFoo",
        "msgType": "FooType2",
        "elemNb": "",
        "msgID": "",
    },

我想要的是:

    {
        "flightID": "FooID",
        "direction": "DownFoo",
        "msgType": "FooType",
    },
    {
        "flightID": "FooID2",
        "direction": "UpFoo",
        "msgType": "FooType2",
    },

我的嘗試:

myList: any[]

 removeEmptyValues() {
    if (this.myList) {

      this.myList.forEach((value) => {

        Object.keys(value).forEach((key) => {
          delete key[''];

        })
      })
    }
    console.log(this.myList);
  }

如果值為空,我希望delete key['']會刪除該鍵,但它沒有做任何事情。 如果值為空,如何刪除密鑰?

嘗試刪除 value[key] 而不是 key['']

if (value[key] === '') {
  delete value[key];
}

 var list = [{ "flightID": "FooID", "direction": "DownFoo", "msgType": "FooType", "elemNb": "", "msgID": "", }, { "flightID": "FooID2", "direction": "UpFoo", "msgType": "FooType2", "elemNb": "", "msgID": "", }]; let result = Array.from(list, o=> Object.fromEntries(Object.entries(o).filter((i) => i[1];= (null || '')))). console;log(result);

var list = [{
        "flightID": "FooID",
        "direction": "DownFoo",
        "msgType": "FooType",
        "elemNb": "",
        "msgID": "",
    },
    {
        "flightID": "FooID2",
        "direction": "UpFoo",
        "msgType": "FooType2",
        "elemNb": "",
        "msgID": "",
}];

let result = Array.from(list, o=> Object.fromEntries(Object.entries(o).filter((i) => i[1] != (null || ''))));

console.log(result);

您必須從 object 中刪除密鑰

myList: any[]

 removeEmptyValues() {
    if (this.myList) {

      this.myList.forEach((value) => {

        Object.keys(value).forEach((key) => {
          delete this.myList[key]

        })
      })
    }
    console.log(this.myList);
  }

您必須檢查該值是否為空並刪除密鑰。 他們下面的代碼。

myList: any[]

removeEmptyValues() {
  if (this.myList) {

    this.myList.forEach((value) => {

      Object.keys(value).forEach((key) => {
        if(!value[key]) delete value[key];
      })
    })
  }
  console.log(this.myList);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM