殤丶 发表于 2021-7-15 09:57

JS前端大佬帮忙看看呢【JS】

本帖最后由 殤丶 于 2021-7-15 10:36 编辑

返回的数据要重组,但是怎么重组都不行,求大佬帮忙看看。【左侧返回的是一个数组对象数据,里面都有N个target一样的对象(现在测试只用了4个),需要动态转换成右侧,一个数组中包含N个对象的形式,每个对应的对象target的值和返回数组中target的顺序一致。例如:左边的第一个target1,放到右侧数组中第一个对象中,左边的第二个target1,放到右侧数组中第二个对象中,后面的target2、target3以此类推】

alan3258 发表于 2021-7-15 10:19

为啥不让后端直接处理?

殤丶 发表于 2021-7-15 10:20

alan3258 发表于 2021-7-15 10:19
为啥不让后端直接处理?

可以后端能处理的,早就让他处理完了。:'(weeqw

ghwanz 发表于 2021-7-15 10:25

你想干啥,没看懂

jobinLi 发表于 2021-7-15 10:27

这。。看不出规则是什么啊?n结尾的放在重组后数组的第N个对象并累加target前缀的索引?

alan3258 发表于 2021-7-15 10:33

建议还是由后端进行处理,实在不行,你就把收到的数据存到浏览器的本地缓存中,前端数据库在处理也就方便了

殤丶 发表于 2021-7-15 10:35

jobinLi 发表于 2021-7-15 10:27
这。。看不出规则是什么啊?n结尾的放在重组后数组的第N个对象并累加target前缀的索引?

就是返回的是一个数组对象数据,里面都有N个target一样的对象,需要动态转换成,一个数组中包含N个对象,每个对应的对象target的值和返回数组中target的顺序一致。例如:左边的第一个target1,放到右侧数组中第一个对象中,左边的第二个target1,放到右侧数组中第二个对象中,后面的target2、target3以此类推

mxh861001 发表于 2021-7-15 10:36

不知道你到底想表达什么

pzx521521 发表于 2021-7-15 10:38

<script>
var arr=[
        {target1:31},
        {target1:32},
        {target1:33},
        {target1:34},
        {target2:41},
        {target2:42},
        {target2:43},
        {target2:44},
        {target3:51},
        {target3:52},
        {target3:53},
        {target3:54}
]
var result = [{"你糊掉的东西":"你糊掉的东西"}, {}, {}, {}, {}]
for(let item of arr){
    for(let keyin item){
                for (var i=1;i<5;i++){
                        if(!result.hasOwnProperty(key)){
                                result = item
                                break;
                        }
                }       
        }
}
console.log(result)
</script>

0: {你糊掉的东西: "你糊掉的东西"}
1: {target1: 31, target2: 41, target3: 51}
2: {target1: 32, target2: 42, target3: 52}
3: {target1: 33, target2: 43, target3: 53}
4: {target1: 34, target2: 44, target3: 54}

Mr.Lih 发表于 2021-7-15 10:48

思路:
let a = [
{ "a1": 1 },
{ "a1": 2 },
{ "a1": 3 },
{ "a1": 4 },
{ "a2": 5 },
{ "a2": 6 },
{ "a2": 7 },
{ "a2": 8 },
{ "a3": 9 },
{ "a3": 10 },
{ "a3": 11 },
{ "a3": 12 },
{ "a4": 13 },
{ "a4": 14 },
{ "a4": 15 },
{ "a4": 16 }
]
let arr =[]
let endData = []
for(let j =0;j<a.length/4;j++){
    for(let i =0;i<a.length;i+=a.length/4){
      arr.push(a)
    }
}
for(let i = 0;i<arr.length;i+=arr.length/4){
endData.push(arr.slice(i,i+4))
}
console.log(endData)

页: [1] 2
查看完整版本: JS前端大佬帮忙看看呢【JS】