为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

杨魅力 2022-08-04 10:32:33
我得到了一个这样的数组: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;    })});你看到更好的方法来做到这一点吗?
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

function deleteKeyFromObject(inputObject) {

    for (let[currentObjectKey,currentObjectValue] of Object.entries(inputObject)) {

        if (currentObjectKey === 'value') {

            delete inputObject.value;

        } else if (Array.isArray(currentObjectValue)) {

            deleteObjectFromArray(currentObjectValue);

        } else if (typeof currentObjectValue === 'object') {

            deleteKeyFromObject(currentObjectValue);

        }

    }

    ;

}


function deleteObjectFromArray(inputArray) {

    for (let currentIndex = 0; currentIndex < inputArray.length; currentIndex++) {

        let currentElement = inputArray[currentIndex];

        if (Array.isArray(currentElement)) {

            deleteObjectFromArray(currentElement);

        } else if (typeof currentElement === 'object') {

            deleteKeyFromObject(currentElement);

        }

    }

    ;

}


var data1 = {

    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

    }, ]]

}


deleteKeyFromObject(data1);

console.log(data1);


查看完整回答
反对 回复 2022-08-04
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

可能不修改现有对象可能是更好的做法:


rows = rows.map(fields => {

    return fields.map(field => {

        return {...field, value: ''};

    })

});


查看完整回答
反对 回复 2022-08-04
?
慕斯709654

TA贡献1840条经验 获得超5个赞

可用于显式删除属性及其值。无需地图:delete


var ob = {foo:'bar',fizz:'buzz'};

console.log(ob); // Object { foo: "bar", fizz: "buzz" }

delete ob.fizz;

console.log(ob); // Object { foo: "bar" }


查看完整回答
反对 回复 2022-08-04
  • 3 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号