后台返回json数据处理问题(js react antdpro)
各位大佬,我是新入门的前端萌新,目前有个项目在基于ant design pro(ts react)开发一个系统,目前遇到了一个问题。服务器返回的数据如下:[*]
data: [{planFinish: "2022-09-29", planId: "2", planName: "2022年中学招生", planStart: "2022-06-01",…},…]
0: {planFinish: "2022-09-29", planId: "2", planName: "2022年中学招生", planStart: "2022-06-01",…}
1: {planFinish: "2022-09-29", planId: "3", planName: "2022年小学招生", planStart: "2022-06-01",…}
2: {planFinish: "2022-09-29", planId: "5", planName: "2022年9月小学招生", planStart: "2022-09-01",…}
3: {planFinish: "2023-03-31", planId: "6", planName: "2023年3月招生测试", planStart: "2023-03-01",…}
4: {planFinish: "2023-03-31", planId: "7", planName: "2023年4月招生测试", planStart: "2023-03-01",…}
msg: ""
我需要在选择框使用这个数据,但是格式要处理为这样的:
{
2: '2022年小学招生',
3: '2022年9月小学招生',
5: '2022年9月小学招生',
6: '2023年3月招生测试',
7: '2023年4月招生测试',
};
请各位大佬帮忙看看如何解决,小弟在此谢过!
本帖最后由 爱飞的猫 于 2022-7-14 03:46 编辑
```js
const data = [{
planId: 1,
planName: 'a1'
}, {
planId: 2,
planName: 'a2'
}];
const result = data.reduce((result, {
planId,
planName
}) => Object.assign(result, {
: planName
}), Object.create(null));
console.log(result); // 得到 {1: 'a1', 2: 'a2'}
```
关于 reduce 函数可以看文档:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce 补充:antd的ProFormSelect组件中valueEnum的值要是一个对象,格式如下:
valueEnum={{
2: '2022年小学招生',
3: '2022年9月小学招生',
5: '2022年9月小学招生',
6: '2023年3月招生测试',
7: '2023年4月招生测试',
}}
后台返回的data是一个数组,只需要planid和planname的值。还请各位大佬帮忙写一下,包括map方法是怎么写的,越详细越好,谢谢! 学习了,感谢分享 这种用vue都能解决吧{:1_904:} const data = [{
planId: 1,
planName: 'a1'
}, {
planId: 2,
planName: 'a2'
}];
let result = data.map((item) => {
return {
: item.planName
}
})
console.log(result) 本帖最后由 cl19980429 于 2022-7-14 11:05 编辑
const data = [{
planId: 1,
planName: 'a1'
}, {
planId: 2,
planName: 'a2'
}];
let result= {}
res.forEach((item) => {
result = item.planName
})console.log(result) 本帖最后由 凉柠 于 2022-7-14 09:45 编辑
但凡js基础会一点都不至于这个都不会
let res = [{
planFinish: "2022-09-29",
planId: "2",
planName: "2022年中学招生",
planStart: "2022-06-01"
}, {
planFinish: "2022-09-29",
planId: "2",
planName: "2022年中学招生",
planStart: "2022-06-01"
}, {
planFinish: "2022-09-29",
planId: "2",
planName: "2022年中学招生",
planStart: "2022-06-01"
}, {
planFinish: "2022-09-29",
planId: "2",
planName: "2022年中学招生",
planStart: "2022-06-01"
}]
let data = []
res.forEach((e)=>{
data.push(e.planName)
})
console.log(res)
console.log(data)
console.log(Object.assign({}, data))
凉柠 发表于 2022-7-14 09:37
但凡会js基础会一点都不至于这个都不会
let data = []
res.forEach((e)=>{
补充一下如果需要对象这样写 console.log(Object.assign({}, data))转换一下就可以 留个记号,有用
页:
[1]
2