用js编写一个程序在运行输出结果: 从一个数组中找出所有相同的元素,并输出出来。 例如数组为:1、1、2、3、1、4、8、2、7、5、4、10、6、5、9, 输出结果为:1、1、1、2、2、4、4、5、5 要求:请考虑一种以上不同解决思路.
时间: 2023-03-29 19:00:52 浏览: 87
详解JS取出两个数组中的不同或相同元素
可以使用双重循环的方法,遍历数组中的每一个元素,再遍历其后面的元素,如果有相同的元素,则输出。
另外一种方法是使用哈希表,遍历数组中的每一个元素,将其作为哈希表的键,值为出现的次数。最后再遍历哈希表,输出出现次数大于1的键。
以下是第一种方法的代码示例:
```javascript
const arr = [1, 1, 2, 3, 1, 4, 8, 2, 7, 5, 4, 10, 6, 5, 9];
const result = [];
for (let i = ; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
result.push(arr[i]);
}
}
}
console.log(result);
```
输出结果为:[1, 1, 1, 2, 2, 4, 4, 5, 5]
以下是第二种方法的代码示例:
```javascript
const arr = [1, 1, 2, 3, 1, 4, 8, 2, 7, 5, 4, 10, 6, 5, 9];
const map = new Map();
const result = [];
for (let i = ; i < arr.length; i++) {
if (map.has(arr[i])) {
map.set(arr[i], map.get(arr[i]) + 1);
} else {
map.set(arr[i], 1);
}
}
for (let [key, value] of map) {
if (value > 1) {
for (let i = ; i < value; i++) {
result.push(key);
}
}
}
console.log(result);
```
输出结果为:[1, 1, 1, 2, 2, 4, 4, 5, 5]
阅读全文