如何在非空数组中删除value为假值的对应对象?
解决方案
没问题,我来帮你完善这个逻辑!你已经正确完成了第一步——判断数组是否有效(存在且非空),接下来只需要结合数组的filter方法就能轻松实现过滤需求啦。
完整实现代码
var data = someDataWhichComesFromOtherMethod var array = [ {name: "one", value:"data1", caption:"aaa"}, {name: "two", value:"data2", caption:"bbb"}, {name: "three", value:"data3", caption:"ccc"}, {name: "four", value:"data4", caption:"ddd"} ]; // 检查数组是否有效(存在且非空) if (array && array.length) { // 过滤掉value为假值的对象 array = array.filter(item => Boolean(item.value)); }
代码说明
filter方法会返回一个新数组,只保留满足条件的元素;如果你想保留原数组不被修改,可以把结果赋值给新变量,比如const filteredArray = array.filter(...)。Boolean(item.value)会把对象的value转换为布尔值:JS里的假值包括null、""(空字符串)、undefined、0、NaN、false,这些都会被自动过滤掉,完全匹配你的需求。
效果示例
如果原数组中data4为null或"",过滤后的数组就会变成:
[ {name: "one", value:"data1", caption:"aaa"}, {name: "two", value:"data2", caption:"bbb"}, {name: "three", value:"data3", caption:"ccc"} ]
内容的提问来源于stack exchange,提问作者wpwpwp
相关产品推荐
相关产品推荐

