js如何遍历删除多维数组 js遍历删除多维数组的方法
dearweb 发布:2023-03-15 20:01:04阅读:在日常开发中,我们经常遇到删除数组的某一个值,但是多维数组的情况一般很少遇到,本文给大家介绍一下,多维数组中删除某一个元素的方法。
let arr = [ { "isRequired": false, "componentType": 23, "fieldNames": "apply_user_name", "icon": "ivu-icon ivu-icon-ios-git-network", "selectResValue": "2", "uuid": "89897400-af3c-4ade-b84b-dfeada64b989", "basePresetTxt": "文本回显框", "resultVal": "", "selectList": [], "actualPayment": 0, "fieldTypeNames": "String", "checked": false, "componentName": "SingleLineDisableCard", "baseTitle": "文本回显框", }, { "componentType": 15, "componentsList": [ { "componentsList": [ { "isRequired": false, "componentType": 23, "fieldNames": "bumen", "icon": "ivu-icon ivu-icon-ios-git-network", "selectResValue": "1", "uuid": "64bc5718-2e41-4e7d-a4b8-aad6efc629fe", "basePresetTxt": "文本回显框", "resultVal": "", "selectReslutList": [ { "label": "当前单位", "value": "1" }, { "label": "当前角色名称", "value": "2" } ], "selectList": [], "actualPayment": 0, "fieldTypeNames": "String", "checked": false, "componentName": "SingleLineDisableCard", "baseTitle": "文本回显框", } ], "checked": false, "gridVal": 12, "componentName": "GridItemCard", "uuid": "a635e0d0-917b-437c-be84-9b326bb754aa" }, { "componentsList": [ { "isRequired": true, "componentType": 8, "fieldNames": "use_car_people", "icon": "ivu-icon ivu-icon-ios-create-outline", "uuid": "9d2179aa-5a2b-473b-b942-a654c7692676", "basePresetTxt": "请输入", "resultVal": "", "fieldTypes": "1", "fieldTypeNames": "String", "checked": false, "componentName": "SingleLineCard", "baseTitle": "单行文本", "presetTxt": "请输入" } ], "checked": false, "gridVal": 12, "componentName": "GridItemCard", "uuid": "91c9c3b3-f1f4-4dc1-b58a-687dbd111920" } ], "icon": "ivu-icon ivu-icon-md-person", "checked": false, "componentName": "GridCard", "baseTitle": "栅格组件", "uuid": "b1e576a1-9df7-4150-a1bc-20510ca1b0a5", "basePresetTxt": "拖拽控件到布局容器中", "resultVal": 2 }, { "componentType": 15, "componentsList": [ { "componentsList": [ { "isRequired": false, "componentType": 8, "fieldNames": "fellow", "icon": "ivu-icon ivu-icon-ios-create-outline", "uuid": "62d09847-a05f-4031-9f5c-e27f1867e205", "basePresetTxt": "请输入", "resultVal": "", "fieldTypes": "1", "fieldTypeNames": "String", "checked": false, "componentName": "SingleLineCard", "baseTitle": "单行文本", "presetTxt": "请输入" } ], "checked": false, "gridVal": 12, "componentName": "GridItemCard", "uuid": "08c8ff4a-b019-403e-8740-367d48edb982" }, { "componentsList": [ { "isRequired": true, "componentType": 8, "fieldNames": "how_day", "icon": "ivu-icon ivu-icon-ios-create-outline", "uuid": "ae58a05b-a84d-4bbb-a17e-dcd208558cc1", "basePresetTxt": "请输入", "resultVal": "", "fieldTypes": "1", "fieldTypeNames": "String", "checked": false, "componentName": "SingleLineCard", "baseTitle": "单行文本", "presetTxt": "请输入" } ], "checked": false, "gridVal": 12, "componentName": "GridItemCard", "uuid": "6a0e8f2c-c16a-42fd-8cf9-c43ebde113ba" } ], "icon": "ivu-icon ivu-icon-md-person", "checked": false, "componentName": "GridCard", "baseTitle": "栅格组件", "uuid": "fcceb368-4f31-498e-9ab4-21fd7ff97111", "basePresetTxt": "拖拽控件到布局容器中", "resultVal": 1 }, { "componentType": 15, "componentsList": [ { "componentsList": [ { "isRequired": true, "componentType": 8, "fieldNames": "place", "icon": "ivu-icon ivu-icon-ios-create-outline", "uuid": "dc234656-58f8-4c4f-9fcf-81fef0fd7fe8", "basePresetTxt": "请输入", "resultVal": "", "fieldTypes": "1", "fieldTypeNames": "String", "checked": false, "componentName": "SingleLineCard", "baseTitle": "单行文本", "presetTxt": "请输入" } ], "checked": false, "gridVal": 12, "componentName": "GridItemCard", "uuid": "f99f2b5b-0d3f-44d7-9219-dee2e149ebeb" }, { "componentsList": [ { "isRequired": true, "componentType": 11, "fieldNames": "go_date_time", "icon": "ivu-icon ivu-icon-ios-calendar-outline", "uuid": "4839bdaf-5004-448f-a58b-f517e3c20ac5", "basePresetTxt": "说明文字", "resultVal": "", "fieldTypeNames": "String", "checked": false, "componentName": "DateSelectionCard", "baseTitle": "日期选择", "presetTxt": "说明文字" } ], "checked": false, "gridVal": 12, "componentName": "GridItemCard", "uuid": "dae53172-d4c0-4ff5-ac8d-9c045bd96292" } ], "icon": "ivu-icon ivu-icon-md-person", "checked": false, "componentName": "GridCard", "baseTitle": "栅格组件", "uuid": "15bf6091-edef-41ec-977b-625a212e9a9a", "basePresetTxt": "拖拽控件到布局容器中", "resultVal": 2 }, { "isRequired": true, "componentType": 9, "fieldNames": "use_car_reason", "icon": "ivu-icon ivu-icon-ios-create-outline", "uuid": "cbdbe955-417a-40d5-906d-b144d5f9b9f0", "basePresetTxt": "说明文字", "resultVal": "", "fieldTypeNames": "String", "checked": false, "componentName": "MultilineTextCard", "baseTitle": "多行文本", "presetTxt": "说明文字" } ] let obj = { "how_day": { "isDisable": true, "fieldTitle": "预计天数" }, "fellow": { "isDisable": true, "fieldTitle": "同行人" }, "bumen": { "isDisable": true, "fieldTitle": "用车部门" }, "use_car_people": { "isDisable": true, "fieldTitle": "用车人" }, "go_date_time": { "isDisable": true, "fieldTitle": "出车时间" }, "use_car_reason": { "isDisable": true, "fieldTitle": "用车事由" }, "place": { "isDisable": true, "fieldTitle": "办事地点" }, "apply_user_name": { "isDisable": false, "fieldTitle": "申请人" } } const arrFn = (data) => { data.forEach((o, i) => { console.log(o.fieldNames) if (obj[o.fieldNames] && obj[o.fieldNames].isDisable) { data.splice(i, 1) new Set(arr) } if (o.componentsList) { arrFn(o.componentsList) } }); } console.time() arrFn(arr) console.log('--------------------------') arrFn(arr) console.timeEnd()
主要是删除了arr 里面的对象中 fieldNames 的值在 obj 对象中 isDisable 的属性为 true 的对象。
以上最终输出的结果为 apply_user_name 的对象,时间上只用了 1.3ms,性能还是可以的。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧