所以这个问题之前已经被问过,但我的情况有点不同,因为我已经尝试了这个网站中建议的所有解决方案,我有一个多维数组:
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”。 到目前为止,我尝试了 find、filter 和 grep,但这些都没有解决我的问题。
我尝试过的代码:
var Cent = $.grep(array, function(e){ return e.dup== JSON.stringify(datax); });
contentString += " and "+Cent +"is the closer";
最佳答案
您仍然可以使用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);
关于javascript - 在 javascript 数组中查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265862/