首页 > 解决方案 > 如何从打字稿中的数组中清除元素值?

问题描述

这里我有一个数组。

  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
  }
]


我想从上面的数组中清除下面元素的值。

以下是预期的。

    [
      {
        "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
      }
    ]

有没有一种简单的方法,还是我需要遍历它并手动删除它们?

标签: javascriptarraystypescriptecmascript-6

解决方案


如果不遍历所有元素,您将无法执行此操作,但是您可以使用一些快捷方式来代替 for:

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

或者你也可以使用它,它是 es6 胖箭头函数

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

上述代码中可能存在一些语法错误,因为它未经测试。


推荐阅读