如何从二维数组(2D array)中移除包含指定元素的子数组?
移除二维数组中包含指定元素的子数组
给定二维数组[["1", "fish"], ["2", "dog"], ["3", "cat"]],我们需要移除所有包含"fish"的子数组,最终得到结果[["2", "dog"], ["3", "cat"]]。以下是几种常见编程语言的实现方式:
Python 实现
方式一:创建新数组(推荐)
用列表推导式快速过滤符合条件的子数组,这种方式不会修改原数组,代码简洁高效:
original_arr = [["1", "fish"], ["2", "dog"], ["3", "cat"]] filtered_arr = [sub_arr for sub_arr in original_arr if "fish" not in sub_arr] print(filtered_arr) # 输出: [["2", "dog"], ["3", "cat"]]
方式二:修改原数组
如果需要直接修改原数组,可以倒序遍历数组(避免删除元素后索引偏移),删除目标子数组:
original_arr = [["1", "fish"], ["2", "dog"], ["3", "cat"]] for i in range(len(original_arr)-1, -1, -1): if "fish" in original_arr[i]: del original_arr[i] print(original_arr) # 输出: [["2", "dog"], ["3", "cat"]]
JavaScript 实现
方式一:创建新数组(推荐)
使用数组的filter方法过滤掉包含指定元素的子数组,同样不修改原数组:
const originalArr = [["1", "fish"], ["2", "dog"], ["3", "cat"]]; const filteredArr = originalArr.filter(subArr => !subArr.includes("fish")); console.log(filteredArr); // 输出: [["2", "dog"], ["3", "cat"]]
方式二:修改原数组
若要直接修改原数组,可倒序遍历并使用splice方法删除目标子数组:
const originalArr = [["1", "fish"], ["2", "dog"], ["3", "cat"]]; for (let i = originalArr.length - 1; i >= 0; i--) { if (originalArr[i].includes("fish")) { originalArr.splice(i, 1); } } console.log(originalArr); // 输出: [["2", "dog"], ["3", "cat"]]
内容的提问来源于stack exchange,提问作者Mint
相关产品推荐
相关产品推荐

