从嵌套对象数组中删除“值”键

我得到了一个这样的数组:


rows: [

  [

    { title: 'Test', value: 1 },

    { title: 'Test2', value: 2 },

    { title: 'Test3', value: 3 },

  ],

  [

    { title: 'Test4', value: 4 },

    { title: 'Test5', value: 5 },

  ],

  [

    { title: 'Test6', value: 6 },

    { title: 'Test7', value: 7 },

  ]

]

现在我想在每个嵌套对象中取消设置键。value


目前我正在做:


rows.map(function(fields){

    return fields.map(function(field){

      field.value = '';

      return field;

    })

});

你看到更好的方法来做到这一点吗?


杨魅力
浏览 172回答 3
3回答

慕桂英546537

function deleteKeyFromObject(inputObject) {&nbsp; &nbsp; for (let[currentObjectKey,currentObjectValue] of Object.entries(inputObject)) {&nbsp; &nbsp; &nbsp; &nbsp; if (currentObjectKey === 'value') {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delete inputObject.value;&nbsp; &nbsp; &nbsp; &nbsp; } else if (Array.isArray(currentObjectValue)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; deleteObjectFromArray(currentObjectValue);&nbsp; &nbsp; &nbsp; &nbsp; } else if (typeof currentObjectValue === 'object') {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; deleteKeyFromObject(currentObjectValue);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; ;}function deleteObjectFromArray(inputArray) {&nbsp; &nbsp; for (let currentIndex = 0; currentIndex < inputArray.length; currentIndex++) {&nbsp; &nbsp; &nbsp; &nbsp; let currentElement = inputArray[currentIndex];&nbsp; &nbsp; &nbsp; &nbsp; if (Array.isArray(currentElement)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; deleteObjectFromArray(currentElement);&nbsp; &nbsp; &nbsp; &nbsp; } else if (typeof currentElement === 'object') {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; deleteKeyFromObject(currentElement);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; ;}var data1 = {&nbsp; &nbsp; rows: [[{&nbsp; &nbsp; &nbsp; &nbsp; title: 'Test',&nbsp; &nbsp; &nbsp; &nbsp; value: 1&nbsp; &nbsp; }, {&nbsp; &nbsp; &nbsp; &nbsp; title: 'Test2',&nbsp; &nbsp; &nbsp; &nbsp; value: 2&nbsp; &nbsp; }, {&nbsp; &nbsp; &nbsp; &nbsp; title: 'Test3',&nbsp; &nbsp; &nbsp; &nbsp; value: 3&nbsp; &nbsp; }, ], [{&nbsp; &nbsp; &nbsp; &nbsp; title: 'Test4',&nbsp; &nbsp; &nbsp; &nbsp; value: 4&nbsp; &nbsp; }, {&nbsp; &nbsp; &nbsp; &nbsp; title: 'Test5',&nbsp; &nbsp; &nbsp; &nbsp; value: 5&nbsp; &nbsp; }, ], [{&nbsp; &nbsp; &nbsp; &nbsp; title: 'Test6',&nbsp; &nbsp; &nbsp; &nbsp; value: 6&nbsp; &nbsp; }, {&nbsp; &nbsp; &nbsp; &nbsp; title: 'Test7',&nbsp; &nbsp; &nbsp; &nbsp; value: 7&nbsp; &nbsp; }, ]]}deleteKeyFromObject(data1);console.log(data1);

翻过高山走不出你

可能不修改现有对象可能是更好的做法:rows = rows.map(fields => {&nbsp; &nbsp; return fields.map(field => {&nbsp; &nbsp; &nbsp; &nbsp; return {...field, value: ''};&nbsp; &nbsp; })});

慕斯709654

可用于显式删除属性及其值。无需地图:deletevar ob = {foo:'bar',fizz:'buzz'};console.log(ob); // Object { foo: "bar", fizz: "buzz" }delete ob.fizz;console.log(ob); // Object { foo: "bar" }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript