gpt4 book ai didi

javascript - 比较 Vanilla JS 中包含对象的两个数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:27 25 4
gpt4 key购买 nike

我有两个对象数组,我需要根据我拥有的属性进行过滤。

   var port = [
{
name: 'Cali',
type:'Mine',
location = {
lat: '89.9939',
lon: '-79.9999'
}
},
{
name: 'Denver',
type:'Port',
location = {
lat: '67.9939',
lon: '-85.9999'
}
},
{
name: 'Seattle',
type:'Port',
location = {
lat: '167.9939',
lon: '-85.9999'
}
},
...........
]

并有另一个对象作为

   var child = [
{
lat: '89.9939',
lon: '-79.9999'
},

{
lat: '67.9939',
lon: '-85.9999'
}
]

我正在使用过滤器

   var result = port.filter( function(el){
return el.location.lat === child.lat
});

我如何循环我的第二个数组。在这种情况下,我的数据相当大。

最佳答案

您可以使用Array#some确定 child 中是否有任何对象数组具有相同的 lat值为 port 中的任何对象数组。

var port = [{name:'Cali',type:'Mine',location:{lat:'89.9939',lon:'-79.9999'}},{name:'Denver',type:'Port',location:{lat:'67.9939',lon:'-85.9999'}},{name:'Seattle',type:'Port',location:{lat:'167.9939',lon:'-85.9999'}}], 
child = [{lat:'89.9939',lon:'-79.9999'},{lat:'67.9939',lon:'-85.9999'}],
result = port.filter(el => child.some(v => v.lat == el.location.lat));

console.log(result);

关于javascript - 比较 Vanilla JS 中包含对象的两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43266065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com