javascript - 如何在对象中找到数组
问题描述
我有parkingSpots
一个对象数组,其中包含一个坐标属性,它也是一个数组。
例如索引 0:
_id: "5e03c83459d0c115589067ba"
capacity: 2
description: "safas"
title: "aa"
coordinates: (2) [-34.193705512748686, 150.2320126953125]
我正在尝试找到具有arrayToBeFound
. 我尝试了这个解决方案和许多其他解决方案,但仍然无法正常工作。
let arrayToBeFound = [e.latLng.lat(), e.latLng.lng()];
let selectedParkingSpot = parkingSpots.find(x => x.coordinates === arrayToBeFound);
我一直不确定,但它存在。有什么帮助吗?
解决方案
您需要通过将第一个数组的每个项与另一个数组的相应项进行比较来比较两个数组。直接将一个数组与另一个数组进行比较永远不会奏效——它们总是不同的,因为 JS 通过引用来比较数组(对象)。只有当两个引用都指向同一个数组时,它们才会相等。然而,原语是按值比较的。
let selectedParkingSpot = parkingSpots.find(x => x.coordinates[0] === arrayToBeFound[0] && x.coordinates[1] === arrayToBeFound[1]);
推荐阅读
- ios - 如何将日期范围格式化为“MMM,d”?
- android - 如何在单个项目中创建多个即时应用程序?
- flutter - 如何在 Flutter 中制作适合剩余空间的 4 网格
- python - Cpython中的dprintf
- python - 如何将复杂值(列表、字典等)作为 args 传递给 python?
- python-3.x - Pandas DataReader 无法任意识别字符串类型
- r - 不使用 dcast 查找频率表
- java - 尝试解密基于 AES 的加密文本时出现 BadPadding 异常
- javascript - 用户单击按钮时运行功能?
- php - 找不到“GET /lucky/number/”的路线