js怎么实现嵌套数组重排序
导读:本文共1278字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 总共遇到两个问题:1、JS中for循环输出同一变量值的问题js事件处理器在线程空闲事件不会运行,导致最后运行的时候输出的都是i最后的值。解决方法:在循环中声明 this.content1 = {}2、排序算法在序号到10以后出错解决方法:没注意string和int,原数据为string原数据:目标:将table、text、image合并到一个content里面,... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。总共遇到两个问题:
1、JS中for循环输出同一变量值的问题
js事件处理器在线程空闲事件不会运行,导致最后运行的时候输出的都是i最后的值。
解决方法:在循环中声明 this.content1 = {}
2、排序算法在序号到10以后出错
解决方法:没注意string和int,原数据为string
原数据:
目标:将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怎么实现嵌套数组重排序的详细内容,希望对您有所帮助,信息来源于网络。