js找到数组里重复值得方法
时间: 2023-07-07 19:17:00 浏览: 35
可以使用双重循环遍历数组,将每个元素与其后面的元素进行比较,如果相同则表示找到了重复值。具体代码如下:
```javascript
function findDuplicate(arr) {
let len = arr.length;
let result = [];
for(let i = 0; i < len - 1; i++) {
for(let j = i + 1; j < len; j++) {
if(arr[i] === arr[j]) {
if(!result.includes(arr[i])) {
result.push(arr[i]);
}
}
}
}
return result;
}
// 示例
let arr = [1, 2, 3, 4, 2, 5, 3];
let result = findDuplicate(arr);
console.log(result); // [2, 3]
```
上述代码中,使用了一个 `result` 数组来保存找到的重复值,避免了重复记录相同的值。如果数组中没有重复值,则返回一个空数组。
相关问题
js找到数组中重复的值
可以使用两种方法来找到数组中的重复值:
1. 使用双重循环,遍历数组中的每一个元素,并在内部循环中检查是否有相同的元素。如果有,则将其添加到结果数组中。
```javascript
function findDuplicates(arr) {
let result = [];
for (let i = 0; i < arr.length - 1; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
result.push(arr[i]);
}
}
}
return result;
}
const arr = [1, 2, 3, 2, 4, 5, 4];
console.log(findDuplicates(arr)); // Output: [2, 4]
```
2. 使用对象来记录每个元素的出现次数,然后遍历对象,找到出现次数大于1的元素。
```javascript
function findDuplicates(arr) {
let result = [];
let obj = {};
for (let i = 0; i < arr.length; i++) {
if (obj[arr[i]]) {
obj[arr[i]]++;
} else {
obj[arr[i]] = 1;
}
}
for (let key in obj) {
if (obj[key] > 1) {
result.push(parseInt(key));
}
}
return result;
}
const arr = [1, 2, 3, 2, 4, 5, 4];
console.log(findDuplicates(arr)); // Output: [2, 4]
```
这两种方法都可以找到数组中的重复值,但第二种方法的时间复杂度更低,因为它只需要遍历数组和对象一次,而第一种方法需要使用两个嵌套循环。
js判断数组里是否有重复元素的方法
判断数组是否有重复元素可以使用循环遍历数组的方式。具体步骤如下:
1. 定义一个空对象,用于记录数组中元素出现的次数。
2. 使用 for 循环遍历数组的每个元素。
3. 在循环中,判断当前元素是否已经存在于记录对象中。
4. 如果不存在,将当前元素作为对象的 key,并将其出现次数初始化为1。
5. 如果已经存在,将当前元素对应的值加1。
6. 循环结束后,再次遍历记录对象的所有值。
7. 如果存在值大于1的情况,即表示数组有重复元素。
8. 返回判断结果。
示例代码如下:
function hasDuplicate(arr) {
var record = {};
for (var i = 0; i < arr.length; i++) {
if (record[arr[i]]) {
record[arr[i]] += 1;
} else {
record[arr[i]] = 1;
}
}
for (var key in record) {
if (record[key] > 1) {
return true;
}
}
return false;
}
使用该方法判断数组是否有重复元素时,如果返回 true,则表示数组中存在重复元素;如果返回 false,则表示数组中不存在重复元素。