使用数组值查找父对象的键值
Use array value to find parent object's key value
使用Google的Maps API,我希望能够通过同一对象中数组中的值来查找对象中键的值。当我在我的页面上"检查元素"以查看控制台时,以下是它在对象结构方面显示的内容:
results: {
address_components [
0: Object: {
long_name: "704",
short_name: "704",
types [
0:"street_number"
]
}
1: Object {...}
2: Object {...}
3: Object {...}
]
place_id:"8AS8D8F8A881C81DA6S6D8"
}
我希望能够在对象中找到"street_number",以便我可以找到也驻留在对象中的"704"的相应值。
棘手的部分是"address_compenents"中的值并不总是以相同的顺序排列,因此我不能只在我的 javascript 中编写results[0].address_components[0].long_name
来查找它。在这个项目中,我仅限于javascript,所以任何使用该语言的答案将不胜感激。提前谢谢你!
注意:我不反对使用 lodash 或 underscore 等库,如果它有助于解决问题。
首先find()
该项,然后读取必需的属性。
请注意,您还应该考虑并处理响应中没有street_number
的情况,此代码段未涵盖这种情况。
var results = {
address_components: [{
long_name: "704",
short_name: "704",
types: [
"street_number"
]
}, {
long_name: "100",
short_name: "100",
types: [
"attribute_a"
]
}, {
long_name: "200",
short_name: "200",
types: [
"attribute_b"
]
}, {
long_name: "300",
short_name: "300",
types: [
"attribute_c"
]
}],
place_id: "8AS8D8F8A881C81DA6S6D8"
}
var streetNumber = results.address_components.find(function(item) {
return item.types.some(function(subitem) {
return subitem === 'street_number'
});
}).long_name;
console.log(streetNumber); // 704
可以使用
Array.filter() 来完成
results: {
address_components [
0: Object: {
long_name: "704",
short_name: "704",
types [
0:"street_number"
]
}
1: Object {...}
2: Object {...}
3: Object {...}
]
place_id:"8AS8D8F8A881C81DA6S6D8"
}
const result = results.address_components.find(item => item.types.indexOf('street_number') > -1)
const longName = result.long_name // 704
const shortName = result.short_name // 704
相关文章:
- 将键/值数组中的对象与另一个对象(键/值)进行比较
- javascript对象键值对
- 如何将这些对象键值放入文本框中
- 将javascript变量列表转换为对象键/值对
- javascript 对象键值循环 setInterval
- 将数组/对象键值替换为另一个数组/对象 javascript 中的键值
- 如何强制对象键值对首先位于对象中
- 当对象键值在数组中时如何过滤数组
- 将对象键值与数组中的值匹配
- 在动态 JavaScript 对象(键/值对)中创建动态数组
- 计算对象键值并将其转换为百分比(100%)
- 如何在 javascript 中向数组添加新对象(键值对)
- 基于另一个对象键/值存储对象值
- 反应.js传递对象键值对作为 props
- 基于动态数据获取对象键值
- 将javascript对象键值推送到javascript对象键数组
- 转换/解析javascript对象键值对
- 如何在JavaScript中从对象键值返回数组
- getter和setter vs对象键值对
- 异步迭代对象键/值