JS如何删除数组中qty_开头属性为空的对象元素
问题原因
- 变量名拼写错误:代码中混用
mydata和mydatadata,导致无法正确读取目标对象 - 语法错误:
const mydatadata.items的写法不符合JS语法,const关键字仅用于声明变量,不能直接用于赋值对象属性 - 类型使用错误:你通过
Object.assign合并后得到的mydata.items是键为数字的普通对象,不是数组,无法直接调用数组的filter方法
正确实现方案
因为需求要求修改原mydata.items对象,直接遍历对象键删除不符合要求的属性即可:
// 遍历items所有键 for (const key of Object.keys(mydata.items)) { const currentItem = mydata.items[key]; // 校验是否存在非空的qty_开头属性 const hasValidQtyProp = Object.keys(currentItem).some(prop => { return prop.startsWith('qty_') && currentItem[prop]?.trim() !== '' }) // 无有效qty属性则删除原对象的对应键 if (!hasValidQtyProp) { delete mydata.items[key] } } // 输出处理后的结果 console.log(mydata.items)
补充说明
如果后续需要将mydata.items转为数组使用,可以用Object.values(mydata.items)快速转换。
内容的提问来源于stack exchange,提问作者Shantal Kaula
相关产品推荐
相关产品推荐

