簡體   English   中英

如何清除打字稿中數組中的元素值?

[英]How do I clear element values from an array in typescript?

在這里,我有一個數組。

  let dataList= [ { "VersionId": 475, "DocumentVersionFieldId": 1105, "VariantId": 4597, "ElementId": 1019, "FuelTypeId": 4, "VariantStructureWeek": "201817", "SalesVersion": "1", "MarketingCode": "1", "Option": "1", "SequenceNo": 1, "VariantExtendedValue": [], "cocVariantElementValues": [ { "VersionId": 475, "DocumentVersionFieldId": 1105, "VariantId": 4597, "ElementId": 1017, "ElementVariantId": 9548, "VariantValue": "uy", "IsRecordVisible": false, "cocElementLanguageDataCollection": [ { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "EN", "TranslationValue": "uy" }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "AL", "TranslationValue": "jh" }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "DE", "TranslationValue": "hj" }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "UR", "TranslationValue": "jh" } ] } ], "isRowDeleted": false, "operationIndicators": 0, "isMultiLanguage": true, "IsRecordVisible": true, "isShowUp": false, "IsNewRow": false } ] 


我想從上述數組中清除以下元素的值。

  • 我想從cocVariantElementValues數組中清除VariantValue元素

  • 我想從cocElementLanguageDataCollection數組中清除TranslationValue元素

以下是預期的結果。

  [ { "VersionId": 475, "DocumentVersionFieldId": 1105, "VariantId": 4597, "ElementId": 1019, "FuelTypeId": 4, "VariantStructureWeek": "201817", "SalesVersion": "1", "MarketingCode": "1", "Option": "1", "SequenceNo": 1, "VariantExtendedValue": [], "cocVariantElementValues": [ { "VersionId": 475, "DocumentVersionFieldId": 1105, "VariantId": 4597, "ElementId": 1017, "ElementVariantId": 9548, "VariantValue": "",//here "IsRecordVisible": false, "cocElementLanguageDataCollection": [ { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "EN", "TranslationValue": "",//here }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "AL", "TranslationValue": "",//here }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "DE", "TranslationValue": "",//here }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "UR", "TranslationValue": "",//here } ] } ], "isRowDeleted": false, "operationIndicators": 0, "isMultiLanguage": true, "IsRecordVisible": true, "isShowUp": false, "IsNewRow": false } ] 

有沒有簡單的方法,還是我需要遍歷它並手動將其刪除?

您不能在不遍歷所有元素的情況下執行此操作,但是可以使用一些快捷方式代替:

array.map(function(x) { 
  x['VariantValue'] = ''; 
  return x
});

或者您也可以使用此功能,它是es6胖箭頭功能

array.map(x=>x['VariantValue']='');

由於未經測試,上述代碼中可能存在一些語法錯誤。

謝謝@ppl

我通過為我的場景使用多個.map()來獲得它。

dataList.map(function(x) { 
      x.cocVariantElementValues.map(function(y) { 
      y['VariantValue'] = ''; 
      y.cocElementLanguageDataCollection.map(function(z) { 
      z['TranslationValue'] = ''; 
      return z
    });
      return y;
    });
      return x;
    });

成功片段

 let dataList= [ { "VersionId": 475, "DocumentVersionFieldId": 1105, "VariantId": 4597, "ElementId": 1019, "FuelTypeId": 4, "VariantStructureWeek": "201817", "SalesVersion": "1", "MarketingCode": "1", "Option": "1", "SequenceNo": 1, "VariantExtendedValue": [], "cocVariantElementValues": [ { "VersionId": 475, "DocumentVersionFieldId": 1105, "VariantId": 4597, "ElementId": 1017, "ElementVariantId": 9548, "VariantValue": "uy", "IsRecordVisible": false, "cocElementLanguageDataCollection": [ { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "EN", "TranslationValue": "uy" }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "AL", "TranslationValue": "jh" }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "DE", "TranslationValue": "hj" }, { "ElementVariantId": 9548, "LanguageId": 0, "LanguageCode": "UR", "TranslationValue": "jh" } ] } ], "isRowDeleted": false, "operationIndicators": 0, "isMultiLanguage": true, "IsRecordVisible": true, "isShowUp": false, "IsNewRow": false } ] let result = dataList.map(function(x) { x.cocVariantElementValues.map(function(y) { y['VariantValue'] = ''; y.cocElementLanguageDataCollection.map(function(z) { z['TranslationValue'] = ''; return z }); return y; }); return x; }); console.log(result) 

暫無
暫無

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

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