根据该键内数组中的值查找键的值
Find value of key based on value in array within that key
这是一个
脑筋急转弯,所以我正在使用 places API(使用 ember 插件.js所以我真的无法控制版本,除非我想编写自己的版本(它返回的数据如下所示
{
"address_components": [
{
"long_name": "1235",
"short_name": "1235",
"types": [
"street_number"
]
},
{
"long_name": "Long Point Road",
"short_name": "Long Point Rd",
"types": [
"route"
]
},
{
"long_name": "Mount Pleasant",
"short_name": "Mt Pleasant",
"types": [
"locality",
"political"
]
},
{
"long_name": "Charleston County",
"short_name": "Charleston County",
"types": [
"administrative_area_level_2",
"political"
]
},
{
"long_name": "South Carolina",
"short_name": "SC",
"types": [
"administrative_area_level_1",
"political"
]
},
{
"long_name": "United States",
"short_name": "US",
"types": [
"country",
"political"
]
},
{
"long_name": "29464",
"short_name": "29464",
"types": [
"postal_code"
]
},
{
"long_name": "9020",
"short_name": "9020",
"types": [
"postal_code_suffix"
]
}
],
"adr_address": "<span class='"street-address'">1235 Long Point Rd</span>, <span class='"locality'">Mt Pleasant</span>, <span class='"region'">SC</span> <span class='"postal-code'">29464-9020</span>, <span class='"country-name'">USA</span>",
"formatted_address": "1235 Long Point Rd, Mt Pleasant, SC 29464, USA",
"geometry": {
"location": {
"lat": 32.8570647,
"lng": -79.8224902
}
},
"icon": "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
"id": "f3d33a1a65adc47f7fcf927bb7b18ea91a59fb81",
"name": "1235 Long Point Rd",
"place_id": "ChIJkVjE8_5t_ogRvHeqOGZ6cB0",
"reference": "CpQBjAAAAJEVbHvc6lTEXUvlKHc-wTI3f8g8U6W7i6oARvPyP_2TWTNE7IJQQHTABvbxTtMK6cFxRaksi2xaT7lcQiRB-nv7co7BVzfUMrwqr0YFQZvbLH_OGflPlO---vX4GPTQlDnFinnnixHW7LcRGbPJ4jfgnQ3HnURUCUmCa0WrLTIxiuqEwzIljAGv9K_iUMU9nBIQE57UebJ0CfCs9y0MBBvGeRoUUovGUbFYmgCnPOKVlXhrLQaE5uY",
"scope": "GOOGLE",
"types": [
"street_address"
],
"url": "https://maps.google.com/?q=1235+Long+Point+Rd,+Mt+Pleasant,+SC+29464,+USA&ftid=0x88fe6dfef3c45891:0x1d707a6638aa77bc",
"vicinity": "Mount Pleasant",
"html_attributions": []
}
因此,在对象的address_components
部分中,您可以看到每个对象都有一个types
键,其中包含与它们的类型相关的值,例如 street_number
或 route
.我想做的是获取对象的short_name
(或long_name
(,其中type
包含street_number
或route
等等,并能够将它们设置为变量或以其他方式使用它们。
我尝试了几个地址,它以大致相同的顺序返回它们,但是有时该数组中会多一个或少一个项目,因此它并不总是以完全相同的顺序返回相同数量的项目。因此,与其尝试查看索引并希望这是我期望的正确值,不如根据type
所说的内容获得这些值。
我正在使用 ember.js所以如果有一种计算属性方法可以做到这一点会很酷,但我愿意使用 javascript/jQuery 函数来做到这一点。
你可以写一个函数
function getAdress(what, obj) {
return obj.address_components.filter(function(item) {
return item.types.indexOf(what) !== -1;
}).shift();
}
并在需要查找内容时使用它
getAdress('street_number', obj).short_name
小提琴
相关文章:
- Lodash 从值数组中查找数组中的值
- 使用JS查找数组的平均值
- 查找数组javascript中包含的元素类型
- Undercore:查找数组中出现频率最高的对象
- 查找数组's按属性不存在于另一个数组中的对象
- 查找数组中项目包含子字符串的索引
- 按键查找数组中对象的索引
- 按链中的键查找数组元素
- 使用JavaScript查找数组中最近的日期
- 在Javascript中查找数组长度
- 正在查找数组中第一个匹配元素的索引
- Rhino 1.5 R5在查找数组差异时未正确评估JavaScript
- 查找数组值
- 如何在javascript中按属性查找数组中的对象
- 如何使用JavaScript查找数组中的最早日期
- 查找数组中最长的单词/字符串
- 如何查找数组中所有出现的元素的索引(Ramda.js方式)
- 查找数组中的下一个最高数字 - jquery
- 如何查找数组中另一个对象旁边的对象
- 按键查找数组中最接近的 2 个元素