怎么可以根据后台返回的数据,把每一月对应的数据放在原数组中

      原数组是这样的,下标为0代表1月的数据为1,下标为1代表2月的数据为3,以此类推

data: [1, 3, 0, 0, 0, 0,0, 0, 0, 0, 0, 0,]

      后台返回的数据是这样的:name代表5月,shu代表5月的数据是2000,

datas:[{name:5,shu:2000},{name:6,shu:7000},{name:7,shu:8000}],

      返回数据不一定,有可能是567月,也有可能是56789月,

     问题:怎么可以根据后台返回的数据,把每一月对应的数据放在原数组中,

data[datas[key].name - 1] = datas[key].shu
循环datas就行了


 let month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; //月份
        let data = [{ name: 5, shu: 2000 }, { name: 6, shu: 7000 }, { name: 7, shu: 8000 }, { name: 5, shu: 900 }]; //数据
        let a = Fn(month, data);
        console.log(a)
        function Fn(month, data) {
            let v = [];
            month.map((mon) => {
                let obj = {};
                obj.name = mon;
                obj.data = [];
                v.push(obj);
            })
            data.map((item) => {
                v.map((item1) => {
                    if (item1.name == item.name) {
                        item1.data.push(item);
                    }
                })
            })
            return v;
        }

for(var i in datas){data[datas[i].name - 1] = datas[i].shu}

dates是一个数组,循环它,这个数组的元素是对象(json),每次循环时取到对象的name值和shu值,根据你的意思,如果name是5,shu是2000({name:5,shu:2000}),那么这个值应该放到下标(5-1)上面,将原数组下标(5-1)的位置赋值为2000


private void AAA()
        {
            string[] month = new string[] { "1", "3","0", "0", "0", "0", "0", "0", "0", "0", "0", "0" };
            var data = new List<Info>()
            {
                new Info() {name =5,shu=2000 },
                new Info() {name =6,shu=7000 },
                new Info() {name =7,shu=8000 }
            }.ToArray();
            foreach (var item in data)
            {
                month[item.name - 1] = item.shu.ToString();
            }
        }