如何移除数组中字段为NULL的元素 附代码示例与预期输出
最优实现方案
这里分两种常用语言给出符合语言惯用规范的写法,时间复杂度均为O(n*m)(n为外层数组长度,m为子数组长度),是该场景下的最优复杂度,同时写法简洁可读性强:
Ruby 实现(对应你给出的nil语法场景)
直接使用内置的reject方法结合include?判断即可:
array = [[1555,100],[nil,95],[1774,nil],[1889,255]] # 生成新数组的写法,不修改原数组 filtered_array = array.reject { |sub_arr| sub_arr.include?(nil) } # 如果需要直接修改原数组,替换为 reject! 方法即可 # array.reject! { |sub_arr| sub_arr.include?(nil) }
运行后得到的结果就是预期的[[1555, 100], [1889, 255]]。
Python 实现(对应Python的None空值场景)
用列表推导式实现最简洁:
array = [[1555,100],[None,95],[1774,None],[1889,255]] filtered_array = [sub_arr for sub_arr in array if None not in sub_arr]
内容的提问来源于stack exchange,提问作者Ragnar921
相关产品推荐
相关产品推荐

