当前位置: 首页 > 知识库问答 >
问题:

在 javascript 数组中查找对象 [重复]

长孙朝明
2023-03-14

所以这个问题以前被问过,但我的情况有点不同,因为我已经尝试了这个网站中建议的所有解决方案,我有一个多提及数组:

var array = [
{
    "dup":{ "lat":36.69507771893455,"lng":2.828052824475776 },
    "original":{ "lat":36.695076,"lng":2.8280580000000555}
},
{
    "dup":{ "lat":36.69507687630523,"lng":2.8280525056927672},
    "original":{ "lat":36.695076,"lng":2.8280580000000555}
},
{
    "dup":{ "lat":36.695076,"lng":2.8280523980529324},
    "original":{ "lat":36.695076,"lng":2.8280580000000555}
},
{
    "dup":{ "lat":36.69507512369477,"lng":2.8280525056927672},
    "original":{ "lat":36.695076,"lng":2.8280580000000555}
},
{
    "dup":{ "lat":36.69507428106545,"lng":2.828052824475776},
    "original":{ "lat":36.695076,"lng":2.8280580000000555}
},
{
    "dup":{ "lat":36.695073504493834,"lng":2.828053342151293},
    "original":{ "lat":36.695076,"lng":2.8280580000000555}
},
...
]

我还有另一个小数组:

var datax = {"lat":36.69507428106545,"lng":2.828052824475776}

我只想找到与这个“dup”在同一行的“original”。到目前为止,我尝试了查找、过滤和grep,但这些都没有解决我的问题。

我尝试过的代码

var Cent = $.grep(array, function(e){ return e.dup== JSON.stringify(datax); });
contentString += " and "+Cent +"is the closer";

共有1个答案

花稳
2023-03-14

您仍然可以使用 Array.filter() 来实现此目的:

var array = [{"dup":{"lat":36.69507771893455,"lng":2.828052824475776},"original":{"lat":36.695076,"lng":2.8280580000000555}},{"dup":{"lat":36.69507687630523,"lng":2.8280525056927672},"original":{"lat":36.695076,"lng":2.8280580000000555}},{"dup":{"lat":36.695076,"lng":2.8280523980529324},"original":{"lat":36.69507428106545,"lng":2.828052824475776}},{"dup":{"lat":36.69507512369477,"lng":2.8280525056927672},"original":{"lat":36.695076,"lng":2.8280580000000555}},{"dup":{"lat":36.69507428106545,"lng":2.828052824475776},"original":{"lat":36.695076,"lng":2.8280580000000555}},{"dup":{"lat":36.695073504493834,"lng":2.828053342151293},"original":{"lat":36.695076,"lng":2.8280580000000555}}];
var datax = {"lat":36.69507428106545,"lng":2.828052824475776}

var res = array.filter(item => item.original.lat === datax.lat && item.original.lng === datax.lng);
console.log(res);
 类似资料:
  • 问题内容: 我知道以前也曾问过类似的问题,但是这个问题有些不同。我有一个未命名对象的数组,其中包含一个已命名对象的数组,我需要获取“名称”为“字符串1”的对象。这是一个示例数组。 更新: 我应该早先说过,但是一旦找到它,我想用一个编辑过的对象替换它。 问题答案: 您可以遍历数组并测试该属性:

  • 问题内容: 我有一个数组: 我无法更改数组的结构。我正在传递ID为,我想获取数组中的该对象。 如何在JavaScript或jQuery中做到这一点? 问题答案: 使用方法: 从MDN: 如果数组中的元素满足提供的测试功能,则该方法返回数组中的第一个值。否则返回。 如果要查找其 索引 ,请使用: 从MDN: 该方法返回满足提供的测试功能的数组中第一个元素的索引。否则返回-1。 如果要获取匹配元素的数

  • 问题内容: 我有一个像这样的JSON对象: 我为特定的“ id”提供了“名称”的新值。如何在任何对象内替换特定“ id”的“名称”? 以及如何计算所有对象之间的组总数? 例如:将名称替换为“ test grp45”,ID =“ test1” 这是小提琴 http://jsfiddle.net/qLTB7/21/ 问题答案: 以下函数将搜索对象及其所有子对象/数组,并将键替换为新值。它会在全球范围内

  • 我试图确定一个关键字名称是否存在于我的对象数组中。例如,我如何验证名称为name的键是否等于在函数调用中传递的参数?下面是进一步澄清的代码。

  • 给定这样一组对象: 是否有一种方法可以使用ES6在一组对象中找到匹配的对象关键点(本例中为playerId),然后为这些匹配组合其他对象关键点(辅助和点),以便最终的数组如下所示:

  • 如何在两个属性之后对对象数组进行分组?在以下情况下是否可以使用减少? 例如:按国家和城市将以下数组分组,并对“年龄”属性求和: /*预期结果:*/