ReactJS中如何移除数组内certification为空的对象
移除数组中空认证的release_dates对象解决方案
完全可行,你需要对数据进行两层处理:遍历地区数组(results),同时过滤每个地区下release_dates中certification为空的项。以下是具体实现代码:
原始数据
const originalData = { "id": 603692, "results": [ { "iso_3166_1": "GB", "release_dates": [ { "certification": "", "descriptors": [], "iso_639_1": "", "note": "London", "release_date": "2023-03-24T00:00:00.000Z", "type": 3 }, { "certification": "15", "descriptors": [], "iso_639_1": "", "note": "", "release_date": "2023-03-24T00:00:00.000Z", "type": 3 } ] }, { "iso_3166_1": "US", "release_dates": [ { "certification": "", "descriptors": [], "iso_639_1": "", "note": "", "release_date": "2023-03-20T00:00:00.000Z", "type": 1 }, { "certification": "R", "descriptors": [], "iso_639_1": "", "note": "", "release_date": "2023-03-24T00:00:00.000Z", "type": 3 } ] } ] };
处理代码
// 过滤空认证的release_dates项 const filteredData = { // 保留原数据的id等其他属性 ...originalData, // 遍历每个地区对象 results: originalData.results.map(region => ({ // 保留地区的其他属性(如iso_3166_1) ...region, // 过滤release_dates中certification不为空的项(trim处理避免空格干扰) release_dates: region.release_dates.filter(date => date.certification.trim() !== '') })) };
处理后结果
{ "id": 603692, "results": [ { "iso_3166_1": "GB", "release_dates": [ { "certification": "15", "descriptors": [], "iso_639_1": "", "note": "", "release_date": "2023-03-24T00:00:00.000Z", "type": 3 } ] }, { "iso_3166_1": "US", "release_dates": [ { "certification": "R", "descriptors": [], "iso_639_1": "", "note": "", "release_date": "2023-03-24T00:00:00.000Z", "type": 3 } ] } ] }
关键说明
- 用
map遍历results数组,确保每个地区对象都被处理,同时保留原结构 - 对每个地区的
release_dates用filter筛选,trim()是为了排除仅含空格的无效认证 - 使用扩展运算符(
...)复制原对象属性,避免直接修改原始数据(符合React的不可变数据原则)
内容的提问来源于stack exchange,提问作者Visal Yogaraj
相关产品推荐
相关产品推荐

