在javascript数组中查找对象
以前有人问过这个问题,但我的情况有点不同,因为我已经尝试了本网站中建议的所有解决方案,我有一个多维数组:在javascript数组中查找对象,javascript,Javascript,以前有人问过这个问题,但我的情况有点不同,因为我已经尝试了本网站中建议的所有解决方案,我有一个多维数组: var数组=[ { “dup”:{“lat”:36.69507771893455,“lng”:2.828052824475776}, “原件”:{“lat”:36.695076,“lng”:2.8280580000000555} }, { “dup”:{“lat”:36.69507687630523,“lng”:2.8280525056927672}, “原件”:{“lat”:36.6950
var数组=[
{
“dup”:{“lat”:36.69507771893455,“lng”:2.828052824475776},
“原件”:{“lat”:36.695076,“lng”:2.8280580000000555}
},
{
“dup”:{“lat”:36.69507687630523,“lng”:2.8280525056927672},
“原件”:{“lat”:36.695076,“lng”:2.8280580000000555}
},
{
“dup”:{“lat”:36.695076,“lng”:2.8280523980529324},
“原件”:{“lat”:36.695076,“lng”:2.8280580000000555}
},
{
“dup”:{“lat”:36.69507512369477,“lng”:2.8280525056927672},
“原件”:{“lat”:36.695076,“lng”:2.8280580000000555}
},
{
“dup”:{“lat”:36.69507428106545,“lng”:2.828052824475776},
“原件”:{“lat”:36.695076,“lng”:2.8280580000000555}
},
{
“dup”:{“lat”:36.69507350449334,“lng”:2.828053342151293},
“原件”:{“lat”:36.695076,“lng”:2.8280580000000555}
},
...
]
我还有一个小阵列:
var datax = {"lat":36.69507428106545,"lng":2.828052824475776}
我只想找到和这个“dup”在同一行的“原件”。
到目前为止,我尝试了find、filter和grep,但这些都没有解决我的问题
我尝试过的代码:
var Cent=$.grep(数组,函数(e){returne e.dup==JSON.stringify(datax);});
contentString+=”和“+Cent+”越接近”;
您仍然可以使用Array.filter()实现这一点。
:
var数组=[{“dup”:{“lat”:36.69507771893455,“lng”:2.828052824475776},“原件”:{“lat”:36.695076,“lng”:2.8280580000000555},{“dup”:{“lat”:36.69507687630523,“lng”:2.8280525056927672},“原件”:{“lat”:36.695076,“lng”:2.8280580000000555},{“dup”:“lat”:36.69507687630522,“原件”:“lng”:“原件”:“lat”:2.8280548054545226”,“lng”:“原件”:2.82808052525252528282827575776}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.695076,“液化天然气”: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);
控制台日志(res)代码>您仍然可以使用Array.filter()实现这一点:
var数组=[{“dup”:{“lat”:36.69507771893455,“lng”:2.828052824475776},“原件”:{“lat”:36.695076,“lng”:2.8280580000000555},{“dup”:{“lat”:36.69507687630523,“lng”:2.8280525056927672},“原件”:{“lat”:36.695076,“lng”:2.8280580000000555},{“dup”:“lat”:36.69507687630522,“原件”:“lng”:“原件”:“lat”:2.8280548054545226”,“lng”:“原件”:2.82808052525252528282827575776}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.695076,“液化天然气”: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);
控制台日志(res)
是否要返回新数组或项的索引?您的意思与datax
相同?a)始终向我们展示您尝试的内容。b) 您是否知道对象比较在JS中是如何工作的(或者更确切地说,它是如何工作的,取决于初始假设)?datax是“dup”并希望找到同一行中的“原始”是否要返回新数组或项的索引?您的意思与datax
?a相同)始终向我们展示您尝试过的内容。b) 您知道对象比较在JS中是如何工作的吗(或者更确切地说,它是如何工作的,取决于最初的假设)?datax是“dup”的,希望找到同一行中的“原始”对象