有类似的问题,但我没有找到更好的解决办法。我从我的JS客户端调用一个API,如下所示
export default function (
$http,
API_URL
) {
'ngInject'
const service = {}
service.searchAddresses = function (searchTerm) {
return $http.get(`${API_URL}/names/?beginning=${searchTerm || ''}`)
.then((result) => {
return result.data.data.map((address) => address.attributes.display)
})
}
return service
}在客户端,当我控制台记录结果时,如下所示
{"data":{"data":{"type":"address","attributes":[{"address":"5-7 east street, lidcombe, nsw 2141","display":"5-7 East Street, LIDCOMBE, NSW 2141"},{"address":"5-7 mary street, auburn, nsw 2144","display":"5-7 Mary Street, AUBURN, NSW 2144"},{"address":"5-7 nicholas street, lidcombe, nsw 2141","display":"5-7 Nicholas Street, LIDCOMBE, NSW 2141"}]}}然后,在API方面,网络响应是这样的。
{
"data": {
"type": "address",
"attributes": [
{
"address": "5-7 east street, lidcombe, nsw 2141",
"display": "5-7 East Street, LIDCOMBE, NSW 2141"
},
{
"address": "5-7 mary street, auburn, nsw 2144",
"display": "5-7 Mary Street, AUBURN, NSW 2144"
},
{
"address": "5-7 nicholas street, lidcombe, nsw 2141",
"display": "5-7 Nicholas Street, LIDCOMBE, NSW 2141"
}
]
}
}当我试图检索上面的数据时,客户端出现了一个错误。错误是result.data.data.map不是一个函数
发布于 2018-02-25 15:43:19
map ()是一个数组函数。您的result.data.data是一个对象。如果您想遍历它们,请首先使用Object.keys()、Object.values()或Object.entries():
Object.entries(result.data.data).map(([key, value]) => console.log(key, value))https://stackoverflow.com/questions/48975148
复制相似问题