js 找到同一个数组中相同的值
时间: 2023-02-14 12:43:06 浏览: 127
可以使用 JavaScript 的 `indexOf` 函数来找到数组中相同的值。
例如,如果你想要找到数组 `[1, 2, 3, 3, 4, 4, 5]` 中所有重复的值,可以使用以下代码:
```
let arr = [1, 2, 3, 3, 4, 4, 5];
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) !== i) {
console.log(arr[i]);
}
}
```
这会在控制台输出:
```
3
4
```
这个方法的原理是,对于每个数组中的元素,使用 `indexOf` 函数来查找该元素在数组中的第一次出现的位置。如果该位置不是这个元素的当前索引,那么就说明这个元素在数组中出现了多次,并输出该元素。
相关问题
js 利用filter找到同一个数组中相同的值
可以使用 JavaScript 的 filter 函数来找到数组中相同的值。例如,要从数组 `[1, 2, 3, 2, 1]` 中找出所有重复的值,可以这样写:
```
const arr = [1, 2, 3, 2, 1];
const result = arr.filter((item, index, self) => self.indexOf(item) !== index);
console.log(result); // [2, 1]
```
在这个例子中,filter 函数会对数组中的每一项执行给定的回调函数,回调函数接收三个参数:当前项的值、当前项的索引、原数组。在这个回调函数内,通过使用 Array.prototype.indexOf() 方法检查当前项是否在原数组中出现过,如果出现过,就表示当前项是重复的。
希望这个答案能帮到你!
js 找到同一个数组中某个对象中相同的值
你可以使用 JavaScript 的 `Array.prototype.filter()` 方法来实现这个功能。这个方法会创建一个新数组,新数组中的元素是所有通过测试函数的原数组中的元素。
例如,如果你想在数组 `arr` 中找到所有对象的 `name` 属性等于 'john' 的对象,你可以这样写:
```
const johns = arr.filter(obj => obj.name === 'john');
```
这样,`johns` 数组就包含了所有 `name` 属性等于 'john' 的对象。
另外,如果你想在数组中找到所有具有相同值的对象,你可以使用 JavaScript 的 `Array.prototype.reduce()` 方法来实现。这个方法接受一个函数作为参数,这个函数会对数组中的每个元素执行一次,并返回一个单值。
例如,如果你想在数组 `arr` 中找到所有对象的 `name` 属性值相同的对象,你可以这样写:
```
const sameName = arr.reduce((acc, obj) => {
if (acc[obj.name]) {
acc[obj.name].push(obj);
} else {
acc[obj.name] = [obj];
}
return acc;
}, {});
```
这样,`sameName` 对象就包含了所有具有相同 `name` 属性值的对象,以 `name` 属性值为键,对应的对象为值。
希望这些信息对你有所帮助!
阅读全文