同一标签如何遍历两组数据
发布于 6 年前 作者 xiuyingwu 8597 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

有两个数组在同一个标签内遍历,如何两组数据互不干扰

  • 希望提供的能力


arr1:[

a:

{

title:"title",

address:"address"

},

b:

{

title:"title",

address:"address"

},

c:

{

title:"title",

address:"address"

}

]



arr2:[

d:

{

name:"name",

url:"url"

},

e:

{

name:"name",

url:"url"

},

f:

{

name:"name",

url:"url"

}

]



在<view wx:for="">title:name;address:url</view>


9 回复

小程序是数据驱动的,处理好数据再渲染吧,如果官方开放这种能力不就等于官方帮你处理数据了吗,而且你这种数据返回应用的场景很少,处理起来也不难,我觉得还是自己做一下数据处理吧,或者让后台给你处理一下,不过建议在前端处理,不用消耗服务器资源

<view wx:for="">arr1:arr2</view>

arr1:[

a:xxx,

b:xxx,

c:xxx

]

arr2:[

d:xxx,

e:xxx,

f:xxx

]

就是大概这个样子,给了两个数组,分别遍历成a:d,b:e,c:f这种情况

var obj1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];

var obj2 = [{b: 1}, {b: 2}, {b: 3}];

var count1 = obj1.length;

var count2 = obj2.length;

if (count1 >= count2) {

for (var i in obj1) {

Object.assign(obj1[i], obj2[i])

}

var returnobj = obj1;

} else {

for (var i in obj2) {

Object.assign(obj2[i], obj1[i])

}

var returnobj = obj2;

}

//返回新的数据 returnobj

returnobj=[{a:1,b:1},{a:2,b:2},{a:3,b:3},{a:4}]

是这样的吗???

不能再 js 文件中处理好这个逻辑,然后 wxml 只是做渲染吗?

<view wx:for=’{{arr1}}’ wx:key=’{{index}}’>{{arr1[index].title}}:{{arr2[index].name}},{{arr1[index].address}}:{{arr2[index].url}}</view>

这个拿去试一下,你们的数据这么怪的么,还有一种就是整和两个数组为一个

卢萧萧已经说得很清楚了:遍历arr1,通过遍历arr1时提供的index去访问arr2中对应的项即可。  这样做可以避免合并数组,那就好像把两个饼揉在一起,太蠢了。

我也遇到过这个问题,感觉还是得用js或者在后台先把两个数据合并在一起,wxml里只用一个wx:for来渲染。其他方法可能比这个还麻烦。

list:{

a:[1,2,3],

b:[4,5,6]

}

回到顶部