如何格式化响应以填充react native中的select



我试图将终端字段中的项目格式化为{key, label}数组,以便填充下拉

Object {
"Status": "SUCCESS",
"Terminals": Object {
"0": Object {
"name": "GENESIS- DEMO Terminal",
"term_id": "GENESIS",
},
"1": Object {
"name": "GENESIS- DEMO Terminal",
"term_id": "GENESIS",
},
"name": "",
"term_id": "",
},
"TotalCount": 1
}

响应中有Total count,因此根据Total count从对象中读取每个数据并将其推入options变量一个简单的for循环就可以解决这个问题

检查代码

let response = {
"Status": "SUCCESS",
"Terminals":  {
"0": {
"name": "GENESIS- DEMO Terminal",
"term_id": "GENESIS",
},
"1": {
"name": "GENESIS- DEMO Terminal",
"term_id": "GENESIS",
},
"name": "",
"term_id": "",
},
"TotalCount": 2
}
let options = [];
for(let i=0; i<response.TotalCount; i++) {
options.push({key:response.Terminals[i].term_id, label: response.Terminals[i].name})
}
console.log(options)

Using Object.values()

const data  = {
"Status": "SUCCESS",
"Terminals":  {
"0":  {
"name": "GENESIS- DEMO Terminal",
"term_id": "GENESIS",
},
"1":  {
"name": "GENESIS- DEMO Terminal",
"term_id": "GENESIS",
}
},
"TotalCount": 1
};

const dropDownArray = Object.values(data.Terminals).map(({ name: label, term_id: key }) => ({ key, label }));
console.log(dropDownArray);

最新更新