對于數(shù)組和object對象的數(shù)據(jù)獲取,react是比較容易獲取的,但是前段時間開發(fā)過程中遇到過map集合的數(shù)據(jù),數(shù)據(jù)格式如下:
list={
"id": 1,
actions:{
"create": {
"id": null,
"level": 1,
"name": null,
"description": "新建",
"label": "create",
"url": "user/abc/123",
"method": "GET"
},
"delete": {
"id": null,
"level": 1,
"name": null,
"description": "刪除",
"label": "delete",
"url": "user/abc/123",
"method": "DELETE"
}
}
}
當(dāng)然這是簡化后的數(shù)據(jù)。
對于這種對象的獲取其實直接通過list.actions.create和list.actions.delete是可以獲取到的,但是我們從后臺獲取到數(shù)據(jù)后并不能確定map中的key值,以及map的個數(shù)。
1.對于這種map的操作我們是可以獲取到所有actions中的key值的
var ar=_.keys(list.acctions)
此方法返回的是一個數(shù)組
['create','delete']
但是直接遍歷這個集合,通過獲取到的key來取對應(yīng)的value值是獲取不到的,返回udefiend
2.有一種更簡單的方法我們可以直接得到map中的value
const actions=list.actions;
const usableFunctionDataList = _.map(actions, (data) => data)
返回的數(shù)據(jù)如下:
actions = {
"create": {
"id": null,
"level": 1,
"name": null,
"description": "新建",
"label": "create",
"url": "user/abc/123",
"method": "GET"
},
"delete": {
"id": null,
"level": 1,
"name": null,
"description": "刪除",
"label": "delete",
"url": "user/abc/123",
"method": "DELETE"
}
};
usableFunctionDataList :[{
"id": null,
"level": 1,
"name": null,
"description": "新建",
"label": "create",
"url": "user/abc/123",
"method": "GET"
},{
"id": null,
"level": 1,
"name": null,
"description": "刪除",
"label": "delete",
"url": "user/abc/123",
"method": "DELETE"
}]
最終把value轉(zhuǎn)換成了數(shù)組,就可以遍歷取數(shù)據(jù)了