Javascript 如何筛选数组并获取整个数据条目?

Javascript 如何筛选数组并获取整个数据条目?,javascript,arrays,Javascript,Arrays,我有 和var id=req.params.id,基本上是60673e8a8af58b1fb8b11596。 现在,如何使用我拥有的id变量过滤数组,并获得具有该id的整个对象?我希望整个对象具有_id、ImageName、ImagePath、_v和描述 我搜索了很多,找到了array.filter方法,但它太复杂了,对我没有帮助,我甚至更困惑了。如果你使用的是猫鼬。您可以使用findById(id)。例如:Model.findById(id)所以我们假设上面的数组被称为foo [ {

我有

var id=req.params.id
,基本上是
60673e8a8af58b1fb8b11596
。 现在,如何使用我拥有的
id
变量过滤数组,并获得具有该id的整个对象?我希望整个对象具有_id、ImageName、ImagePath、_v和描述


我搜索了很多,找到了
array.filter
方法,但它太复杂了,对我没有帮助,我甚至更困惑了。

如果你使用的是猫鼬。您可以使用
findById(id)
。例如:
Model.findById(id)

所以我们假设上面的数组被称为
foo

[
  {
    _id: 60673d40ba14f617081bdf4d,
    ImageName: 'Flowers',
    ImagePath: './public/assets/img/1.jpg',
    Description: 'A cool Image',
    __v: 0
  },
  {
    _id: 60673e099d76ef16a8ec4588,
    ImageName: 'Water Bubble Colors',
    ImagePath: './public/assets/img/2.jpg',
    Description: 'Wallpapers',
    __v: 0
  },
  {
    _id: 60673e39f10c4a12a0f4ea31,
    ImageName: 'Egg Silhouette Wallpaper',
    ImagePath: './public/assets/img/3.jpg',
    Description: 'Wallpapers',
    __v: 0
  },
  {
    _id: 60673e4a15d9bb18a01312df,
    ImageName: 'Pencil BW ',
    ImagePath: './public/assets/img/4.jpg',
    Description: 'Wallpapers',
    __v: 0
  },
  {
    _id: 60673e6c6de9bb1bf8c65d25,
    ImageName: 'Water',
    ImagePath: './public/assets/img/5.jpg',
    Description: 'Wallpapers',
    __v: 0
  },
  {
    _id: 60673e8a8af58b1fb8b11596,
    ImageName: 'Dining Plate',
    ImagePath: './public/assets/img/6.jpg',
    Description: 'Wallpapers',
    __v: 0
  }
]
这将在foo数组中查找,并返回满足所传递回调的第一个条件

但是,如果希望从mongodb数据库获得相同的结果,可以执行如下查询:

collection.find({u-id:ObjectID(您的\u-id)})
您可以尝试使用检查id:

var数据=[
{
_id:'60673d40ba14f617081bdf4d',
ImageName:'花',
ImagePath:“./public/assets/img/1.jpg”,
描述:“一个很酷的图像”,
__v:0
},
{
_id:'60673e099d76ef16a8ec4588',
ImageName:'水泡颜色',
ImagePath:'/public/assets/img/2.jpg',
描述:'壁纸',
__v:0
},
{
_id:'60673e39f10c4a12a0f4ea31',
ImageName:'鸡蛋剪影壁纸',
ImagePath:“./public/assets/img/3.jpg”,
描述:'壁纸',
__v:0
},
{
_id:'60673e4a15d9bb18a01312df',
ImageName:'Pencil BW',
ImagePath:“./public/assets/img/4.jpg”,
描述:'壁纸',
__v:0
},
{
_id:'60673e6c6de9bb1bf8c65d25',
ImageName:'水',
ImagePath:“./public/assets/img/5.jpg”,
描述:'壁纸',
__v:0
},
{
_id:'60673e8a8af58b1fb8b11596',
ImageName:“餐盘”,
ImagePath:“./public/assets/img/6.jpg”,
描述:'壁纸',
__v:0
}
]
变量id='60673e8a8af58b1fb8b11596'//请求参数id
var res=data.filter(d=>d.\u id==id);
控制台日志(res)可用于获取元素。它将直接返回元素。如果需要多个解决方案来查找数组中的元素

const arr=[
{
_id:“60673d40ba14f617081bdf4d”,
图像名称:“花”,
ImagePath:“./public/assets/img/1.jpg”,
描述:“一个很酷的形象”,
__v:0,
},
{
_id:“60673e099d76ef16a8ec4588”,
ImageName:“水泡颜色”,
ImagePath:“./public/assets/img/2.jpg”,
说明:“壁纸”,
__v:0,
},
{
_id:“60673e39f10c4a12a0f4ea31”,
ImageName:“鸡蛋剪影壁纸”,
ImagePath:“./public/assets/img/3.jpg”,
说明:“壁纸”,
__v:0,
},
{
_id:“60673e4a15d9bb18a01312df”,
ImageName:“铅笔BW”,
ImagePath:“./public/assets/img/4.jpg”,
说明:“壁纸”,
__v:0,
},
{
_id:“60673e6c6de9bb1bf8c65d25”,
图像名称:“水”,
ImagePath:“./public/assets/img/5.jpg”,
说明:“壁纸”,
__v:0,
},
{
_id:“60673e8a8af58b1fb8b11596”,
图像名称:“餐盘”,
ImagePath:“./public/assets/img/6.jpg”,
说明:“壁纸”,
__v:0,
},
];
var id=“60673e8a8af58b1fb8b11596”;
const result=arr.find(({u id})=>\u id==id);

控制台日志(结果)注意:
\u id
应该是一个字符串。在最初的问题中,它不是。
let item = foo.find(e=>e._id == your_id);