js怎么实现嵌套数组重排序(JS,开发技术)

时间:2024-05-08 19:58:40 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

总共遇到两个问题:

1、JS中for循环输出同一变量值的问题

js事件处理器在线程空闲事件不会运行,导致最后运行的时候输出的都是i最后的值。

解决方法:在循环中声明 this.content1 = {}

2、排序算法在序号到10以后出错

解决方法:没注意string和int,原数据为string

原数据:

js怎么实现嵌套数组重排序

目标:将table、text、image合并到一个content里面,并按blockNO排序

代码:

<script>exportdefault{data(){return{data:[],content1:{}}},created(){this.test()},methods:{asynctest(){const{data:res}=awaitthis.$http.get('test1')for(leti=0;i<res.length;i++){this.data1={}this.data1.name=res[i].namethis.data1.blockNO=res[i].blockNOthis.data1.class=res[i].classthis.data1.id=res[i].idthis.data1.children=[]this.data1.content=[]if(res[i].text){for(letj=0;j<res[i].text.length;j++){this.content1={}this.content1.blockNO=res[i].text[j].blockNOthis.content1.type='text'this.content1.detail=res[i].text[j].textthis.data1.content.push(this.content1)}}if(res[i].table){for(letj=0;j<res[i].table.length;j++){this.content1={}this.content1.blockNO=res[i].table[j].blockNOthis.content1.type='table'this.content1.detail=res[i].table[j].tablethis.data1.content.push(this.content1)}}if(res[i].image){for(letj=0;j<res[i].image.length;j++){this.content1={}this.content1.blockNO=res[i].image[j].blockNOthis.content1.type='image'this.content1.detail=res[i].image[j].imagethis.data1.content.push(this.content1)}}for(letj=1;j<this.data1.content.length;j++){for(leti=0;i<this.data1.content.length-j;i++){if(parseInt(this.data1.content[i].blockNO)>parseInt(this.data1.content[i+1].blockNO)){lettempnum=this.data1.content[i+1]this.data1.content[i+1]=this.data1.content[i]this.data1.content[i]=tempnum}}}this.data.push(this.data1)}console.log(this.data)}}}</script>
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:js怎么实现嵌套数组重排序的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:@Transactional注解异常报错怎么解决下一篇:

18 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18