js 找出一个数组中所有对象id等于另一个数组中对象id的所有元素
时间: 2024-05-08 12:18:22 浏览: 78
Sure, 我可以为您解答这个问题。您可以使用数组的 filter 方法,结合 some 方法来实现这个需求。具体代码如下:
```
const arr1 = [{id: 1, name: 'A'}, {id: 2, name: 'B'}, {id: 3, name: 'C'}];
const arr2 = [{id: 2, desc: 'Object 2'}, {id: 4, desc: 'Object 4'}];
const filteredArr = arr1.filter(obj1 => arr2.some(obj2 => obj2.id === obj1.id));
console.log(filteredArr); // 输出 [{id: 2, name: 'B'}]
```
以上代码会输出 id 为 2 的元素,因为它在 arr1 和 arr2 中都存在。
相关问题
js 一个id组成的数组在另一个含有id的对象数组中找出相对的对象数据并组成数组
在JavaScript中,如果你有一个由`id`s组成的数组`idsArray`,以及另一个包含对象并以其`id`作为键值对的对象数组`objectsArray`,你可以通过循环和数组的`find`或`filter`方法来查找每个`id`对应的数据,并将它们组合成一个新的数组。这里是一个简单的示例:
```javascript
function findObjectsByIds(idsArray, objectsArray) {
const result = [];
for (let id of idsArray) {
let matchedObject = objectsArray.find(obj => obj.id === id);
if (matchedObject) {
result.push(matchedObject);
}
}
return result;
}
// 示例
const idsArray = ['id1', 'id2', 'id3'];
const objectsArray = [
{ id: 'id1', name: 'Obj1', value: 10 },
{ id: 'id2', name: 'Obj2', value: 20 },
{ id: 'id4', name: 'Obj3', value: 30 }, // 这个id不在idsArray中
];
const foundObjects = findObjectsByIds(idsArray, objectsArray);
console.log(foundObjects); // 输出: [{ id: 'id1', name: 'Obj1', value: 10 }, { id: 'id2', name: 'Obj2', value: 20 }]
js 一个id组成的数组在另一个含有id的对象数组中找出相对应对象获取其中的dx数组值 再组成一个对象
在JavaScript中,如果你有一个包含ID的数组`idsArray`,比如:
```javascript
const idsArray = ['id1', 'id2', 'id3'];
```
并且你有另一个对象数组`objectsArray`,每个对象都有一个`id`属性和其他相关的数据,比如`dx`:
```javascript
const objectsArray = [
{ id: 'id1', dx: 5 },
{ id: 'id4', dx: 10 },
{ id: 'id2', dx: 15 },
];
```
你可以使用`map()`函数结合`findIndex()`或者`filter()`来找到对应ID的对象并获取`dx`值。这里假设如果某个ID在`idsArray`中不存在,返回默认值(如undefined)。以下是代码示例:
```javascript
function getDxByIds(idsArray, objectsArray) {
const result = {};
for (const id of idsArray) {
const index = objectsArray.findIndex(obj => obj.id === id);
if (index !== -1) {
result[id] = objectsArray[index].dx;
} else {
// 如果ID未找到,可以选择忽略、返回默认值或者其他处理方式
console.log(`ID ${id} not found.`);
}
}
return result;
}
const specificObjects = getDxByIds(idsArray, objectsArray);
console.log(specificObjects); // 输出: { 'id1': 5, 'id2': 15 }
```
阅读全文