2
[{“电路标记”:[{“类型”:“圆圈标记”}, {“latlong”:“abc”}]}, {“连接器标记”:[{“类型”:“icon_marker”}, {“latlong”:“pqr”}]}, {“图标标记”:[{“类型”:“连接器标记”}, {“latlong”:“xyz”}]}]

我想访问拉特隆每个标记的值。那么我如何才能访问这个结构中的每个属性。

1
  • 你的数据真的是这样结构的吗?真的吗需要成为?这是我要改变的第一件事,看起来这会让我头疼不已。 评论 2014年6月27日14:19

3个答案

重置为默认值
2

您可以获取latlong数据:

for(var a=0;a<obj.length;a++){var key=Object.keys(obj[a])[0];var latlong=对象[a][键][1];console.log(latlong));}

但我认为数据结构不正确,这是更好的解决方案:

var标记=[{“name”:“圆圈标记”,“类型”:“circle_marker”“latlong”:“abc”}, {“name”:“连接器标记”,“类型”:“icon_marker”,“latlong”:“pqr”}, {“name”:“icon_marker”,“type”:“连接器标记”,“latlong”:“xyz”}];
0
1

我认为这对你来说应该有效:-

var-markers=[{“circlemarker”:[{”type“:”circle_marker“},{”latlong“:”abc“}]},}“connector_marker”:[{(类型):”icon_marker;makers.forEach(函数(maker){var makerName=Object.keys(maker)[0];console.log(制造商[makerName][1][“latlong”]);});
-1

因此,对于数组中的每个对象,您都需要提取拉特隆从还引用另一个对象数组的第一个键开始。老兄,我会修复这个数据结构,但如果你无法控制它,你可以这样做:

#!/usr/bin/env节点var数据=[{“圆圈标记”:[{“类型”:“circle_marker”}, {“latlong”:“abc”}]}, {“连接器标记”:[{“类型”:“icon_marker”}, {“latlong”:“pqr”}]}, {“图标_标记”:[{“类型”:“连接器标记”}, {“latlong”:“xyz”}]}];var _=要求(“lodash”),坐标=[];_.each(数据、函数(项){//console.log(项);var key=_(Object.keys(item)).first(),first=项[键],latLong=_.pulch(first,'latLong')[1];if(latLong){坐标推送(latLong);}});控制台.log(坐标);

产生以下输出:

[“abc”,“pqr”,“xyz”]
4
  • 是有效的解决方案,但使用节点。 评论 2014年6月27日14:41
  • 使用lodash或下划线,在任何地方都能正常工作:)
    – 香菜
    评论 2014年6月27日14:42
  • 是的,但是require是一个nodejs方法,除非您使用requirejs:) 评论 2014年6月27日14:46
  • 你会跳过var _=要求(“lodash”)和负载<script src=/path/to/lodash.js>
    – 香菜
    评论 2014年6月27日15:06

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览已标记的其他问题问你自己的问题.