js 查找数组下的数组是否存在某个值,存在返回第一个Object
时间: 2024-02-27 07:54:42 浏览: 60
js使用for循环查询数组中是否存在某个值
5星 · 资源好评率100%
可以使用 `Array.prototype.find()` 方法和 `Array.prototype.includes()` 方法来查找数组下的数组是否存在某个值,如果存在则返回第一个满足条件的对象。具体实现可以参考以下代码:
```javascript
const arr = [
[{id: 1, name: 'a'}, {id: 2, name: 'b'}],
[{id: 3, name: 'c'}, {id: 4, name: 'd'}],
[{id: 5, name: 'e'}, {id: 6, name: 'f'}]
];
const target = {id: 3, name: 'c'};
const result = arr.find(subArr => subArr.some(obj => JSON.stringify(obj) === JSON.stringify(target)));
console.log(result); // [{id: 3, name: 'c'}, {id: 4, name: 'd'}]
```
上述代码中,我们使用 `Array.prototype.find()` 方法查找数组 `arr` 下的数组是否存在对象 `{id: 3, name: 'c'}`。`find()` 方法会遍历数组 `arr`,对于每个子数组 `subArr`,我们使用 `Array.prototype.some()` 方法查找是否存在对象 `target`。使用 `JSON.stringify()` 将对象转为字符串进行比较,因为对象直接比较是按照引用地址比较的,两个相同的对象引用地址不同,所以不能直接使用 `===` 进行比较。如果存在,则返回该子数组 `subArr`。最终输出结果为 `[{id: 3, name: 'c'}, {id: 4, name: 'd'}]`。
阅读全文