吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1526|回复: 13
收起左侧

[求助] 后台返回json数据处理问题(js react antdpro)

  [复制链接]
a1chemy 发表于 2022-7-14 00:29
50吾爱币
各位大佬,我是新入门的前端萌新,目前有个项目在基于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月招生测试',
};
请各位大佬帮忙看看如何解决,小弟在此谢过!

201657729673_.pic.jpg

最佳答案

查看完整内容

[md]```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 ...

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
461735945 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

爱飞的猫 发表于 2022-7-14 00:29
本帖最后由 爱飞的猫 于 2022-7-14 03:46 编辑
const data = [{
  planId: 1,
  planName: 'a1'
}, {
  planId: 2,
  planName: 'a2'
}];
const result = data.reduce((result, {
  planId,
  planName
}) => Object.assign(result, {
  [planId]: 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

免费评分

参与人数 3吾爱币 +7 热心值 +3 收起 理由
hglo + 1 + 1 我很赞同!
一只小凡凡 + 2 + 1 我很赞同!
涛之雨 + 4 + 1 我很赞同!

查看全部评分

 楼主| a1chemy 发表于 2022-7-14 00:33
补充:antd的ProFormSelect组件中valueEnum的值要是一个对象,格式如下:
valueEnum={{
            2: '2022年小学招生',
            3: '2022年9月小学招生',
            5: '2022年9月小学招生',
            6: '2023年3月招生测试',
            7: '2023年4月招生测试',
          }}

后台返回的data是一个数组,只需要planid和planname的值。还请各位大佬帮忙写一下,包括map方法是怎么写的,越详细越好,谢谢!
q5269174 发表于 2022-7-14 07:38
layuai 发表于 2022-7-14 08:48
这种用vue都能解决吧
cl19980429 发表于 2022-7-14 08:55
const data = [{
  planId: 1,
  planName: 'a1'
}, {
  planId: 2,
  planName: 'a2'
}];

let result = data.map((item) => {
    return {
        [item.planId] : item.planName
    }
})
console.log(result)
cl19980429 发表于 2022-7-14 08:56
本帖最后由 cl19980429 于 2022-7-14 11:05 编辑

[JavaScript] 纯文本查看 复制代码
const data = [{
  planId: 1,
  planName: 'a1'
}, {
  planId: 2,
  planName: 'a2'
}];

let result  = {}
  res.forEach((item) => {
    
        result[item.planId] = item.planName
    
})console.log(result)
凉柠 发表于 2022-7-14 09:37
本帖最后由 凉柠 于 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))
微信截图_20220714094454.png

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
a1chemy + 1 + 1 谢谢@Thanks!

查看全部评分

凉柠 发表于 2022-7-14 09:43
凉柠 发表于 2022-7-14 09:37
但凡会js基础会一点都不至于这个都不会
        let data = []
        res.forEach((e)=>{

补充一下如果需要对象这样写 console.log(Object.assign({}, data))转换一下就可以
xlinux 发表于 2022-7-14 09:57
留个记号,有用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 10:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表