吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 751|回复: 13
收起左侧

[求助] JS前端大佬帮忙看看呢【JS】

[复制链接]
殤丶 发表于 2021-7-15 09:57
本帖最后由 殤丶 于 2021-7-15 10:36 编辑

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

Snipaste_2021-07-15_09-50-18.png
Snipaste_2021-07-15_09-50-18.png

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

偶布川内酷 发表于 2021-7-15 10:55
本帖最后由 偶布川内酷 于 2021-7-15 10:56 编辑

[JavaScript] 纯文本查看 复制代码
//假设data是后台传过来的数组
                                var data[];
                                var tindex = 0;
                                var list = [];
                                //第一步找出target1出现几次,表示有几个对象,顺便给list的对象index值赋了
                                data.forEach(item => {
                                        if (item.target1) {
                                                list.push({
                                                        "index": tindex,
                                                })
                                                tindex += 1;
                                        }
                                })
                                //第二部开始拼,最终结果是list
                                data.forEach(item => {
//循环对象
                                        for (let key in item) {
                                                for (var i = 0; i < list.length; i++) {
//判断对象是否有这个属性,如果有就是已经赋值过了。
                                                        if (!list[i].hasOwnProperty(key)) {
                                                                list[i][key] = item[key]
                                                                break;
                                                        }
                                                }
                                        }
                                })

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
殤丶 + 1 + 1 我很赞同!

查看全部评分

pzx521521 发表于 2021-7-15 10:38
[JavaScript] 纯文本查看 复制代码
<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 key  in item){
		for (var i=1;i<5;i++){
			if(!result[i].hasOwnProperty(key)){
				result[i][key] = item[key]
				break;
			}
		}	
	}
}
console.log(result)
</script>


[Asm] 纯文本查看 复制代码
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}

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
殤丶 + 3 + 1 大佬,感谢!

查看全部评分

alan3258 发表于 2021-7-15 10:19
 楼主| 殤丶 发表于 2021-7-15 10:20
alan3258 发表于 2021-7-15 10:19
为啥不让后端直接处理?

可以后端能处理的,早就让他处理完了。
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
不知道你到底想表达什么
Mr.Lih 发表于 2021-7-15 10:48
思路:
[JavaScript] 纯文本查看 复制代码
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[i+j])
    }
  }
for(let i = 0;i<arr.length;i+=arr.length/4){
  endData.push(arr.slice(i,i+4))
}
  console.log(endData)

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2021-9-29 08:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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