js通过数组里的值比较l另一个数组对象的每一项返回符合条件的对象
时间: 2023-05-21 15:06:36 浏览: 227
可以使用 Array.prototype.filter() 来遍历数组并返回符合条件的对象。以下是一个示例代码:
```javascript
const arr1 = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 3, name: 'Charlie'}];
const arr2 = [{id: 2, name: 'Bob'}, {id: 4, name: 'Dave'}];
const result = arr1.filter(item => arr2.find(obj => obj.id === item.id && obj.name === item.name));
console.log(result) // [{id: 2, name: 'Bob'}]
```
这个示例代码中,我们使用了 `Array.prototype.filter()` 来筛选 `arr1` 数组中符合条件的对象。我们通过 `arr2.find()` 来查找 `arr2` 中是否存在与当前遍历到的 `arr1` 中的对象 `item` 属性 `id` 和 `name` 值完全匹配的对象。如果找到了,`arr2.find()` 就会返回该对象,否则返回 `undefined`,最终 `Array.prototype.filter()` 会根据 `arr2.find()` 的返回值是否为真值来决定是否返回该对象。
相关问题
js通过数组里的值比较另一个数组对象的每一项返回不符合条件的对象组成的数组
可以通过循环遍历两个数组,将每个对象的属性逐一比较,如果存在不符合条件的情况,则将该对象添加到一个新数组中并返回。
以下是示例代码:
let arr1 = [{id: 1, name: 'Tom'}, {id: 2, name: 'Jane'}, {id: 3, name: 'John'}];
let arr2 = [{id: 1, name: 'Tom'}, {id: 2, name: 'Jack'}, {id: 4, name: 'Kate'}];
let result = [];
for(let i=0;i<arr1.length;i++) {
for(let j=0;j<arr2.length;j++) {
if(arr1[i].id === arr2[j].id && arr1[i].name !== arr2[j].name) {
result.push(arr2[j]);
}
}
}
console.log(result);
输出结果为:[{id: 2, name: 'Jack'}, {id: 4, name: 'Kate'}]
js遍历数组对象获取符合该项中某一个值,并举例
可以使用数组的 `find()` 方法来遍历数组对象获取符合某一项中某一个值的对象。该方法返回符合条件的第一个对象。
例如,有如下的数组对象:
```javascript
let users = [
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 },
{ id: 3, name: 'Charlie', age: 35 }
];
```
如果要获取 `id` 为 2 的用户对象,可以使用以下代码:
```javascript
let user = users.find(item => item.id === 2);
console.log(user);
```
输出结果为:
```javascript
{ id: 2, name: 'Bob', age: 30 }
```
这里使用了箭头函数作为参数传递给 `find()` 方法,箭头函数中的 `item` 表示数组中的每一个元素对象,`item.id === 2` 表示符合条件的对象的 `id` 属性等于 2。
阅读全文