javascript - 减少数组javascript中的数组
问题描述
我有这个数据结构:
const data = [
{ id: 1, urlName: 'balance-at-work', 办公室: [ { location: 'Sydney, Australia', in_range: false }, ], }, { id: 2, urlName: 'spring-development', 办公室: [ { location: 'Banbury, Oxfordshire', in_range: true }, ], }, { id: 3, urlName: 'talent-lab', office: [ { location: 'México City, Mexico', in_range: false }, { location: 'London, UK', in_range: true }, ], }, ];
我想通过使用大圆距离公式来减少每个对象内的 office 数组。
到目前为止,我已经能够计算出大圆距离并dist
在每个办公对象内添加一个键。我遇到的问题是一种干净的方法,可以在dist
大于给定范围时为每个用户删除每个办公室阵列内的所有对象。
解决方案
执行此操作的简单方法可能如下所示(is_office_in_range
只是一个占位符,用于确定是否应包括办公室):
const data = [
{
id: 1,
urlName: 'balance-at-work',
offices: [
{
location: 'Sydney, Australia',
},
],
},
{
id: 2,
urlName: 'spring-development',
offices: [
{
location: 'Banbury, Oxfordshire, UK',
},
],
},
{
id: 3,
urlName: 'talent-lab',
offices: [
{
location: 'México City, Mexico',
},
{
location: 'London, UK',
},
],
},
];
const is_office_in_range = (office) => office.location.endsWith('UK');
const res = data
.map((company) => ({
...company,
offices: company.offices.filter((office) => is_office_in_range(office))
}))
.filter((company) => company.offices.length);
console.log(res);
推荐阅读
- td-engine - 如何在不启动服务的情况下更改 TDengine 中数据库的缓存选项?
- apache-spark - 如何在不重启 Spark 集群的情况下增加工作节点?
- css - Bootstrap 5:禁用特定按钮、背景或 div 的渐变
- java - ArrayBlockingQueue 使用一把锁
- vue.js - docker-compose 中可配置的 keycloak 客户端密码
- biometrics - 带有预训练模型的 kaldi sre(说话人识别)
- reactjs - 用于反应时的 L.control.IconLayers 错误
- python - wtforms Integer Field 在网页上显示时是否强制换行?
- c - C编程中的悬空指针变量是什么意思?
- java - java中的命名约定