如何找出两个数组中相同索引位置的相同元素?
找出两个数组相同索引位置的相同元素
你需要的是两个数组同一索引位置上的相同元素,比如示例中只有索引2的元素都是C,所以返回['C']。
你的代码问题分析
你写的嵌套循环会遍历两个数组的所有元素对,只要元素相等就加入结果,这会把两个数组中所有重复的元素都找出来(比如示例里的A、B、C、D都会被匹配到),完全没考虑索引是否一致,所以不符合需求。
正确解法
解法1:单层for循环
直接遍历索引,同时对比两个数组对应位置的元素,还处理了数组长度不同的情况(取较短数组的长度避免索引越界):
let testing = []; // 取两个数组中较短的长度,防止索引越界 const maxLen = Math.min(exe1.length, exe2.length); for (let i = 0; i < maxLen; i++) { if (exe1[i] === exe2[i]) { testing.push(exe1[i]); } } return testing;
解法2:使用数组filter方法(更简洁)
利用filter方法的第二个参数index,直接对比对应索引的元素:
const testing = exe1.filter((item, index) => item === exe2[index]); return testing;
测试示例
const exe1 = ['A','B','C','D','N']; const exe2 = ['B','D','C','A','T']; // 执行上述代码后,testing的值为 ['C']
内容的提问来源于stack exchange,提问作者Saim Ali Nadeem
相关产品推荐
相关产品推荐

