Как очистить значения элементов из массива в машинописи? - PullRequest
0 голосов
/ 10 мая 2018

Здесь у меня есть массив.

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

Я хочу очистить значение следующих элементов от вышеуказанного массива.

  • Я хочу очистить VariantValue элемент из cocVariantElementValues массива

  • Я хочу очистить TranslationValue элемент из cocElementLanguageDataCollection массива

Это ниже ожидаемого.

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

Есть простой способ или мне нужно пройти через него и удалить их вручную?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

спасибо @ чел

Я получил это, используя несколько .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)
0 голосов
/ 10 мая 2018

Вы не можете сделать это без зацикливания на всех элементах, однако есть некоторые сочетания клавиш, которые вы можете использовать вместо:

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

В качестве альтернативы вы можете использовать это тоже, это функция es6 fat arrow

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

В приведенном выше коде могут быть некоторые синтаксические ошибки, так как он не проверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...