js 数组遍历渲染

发布于 2022-09-13 00:51:39 字数 783 浏览 18 评论 0

后端返回这种数组、需要渲染成按字母排序的通讯录

      <van-tab title="按字母">
        <van-index-bar class="anchorBar">
          <template v-for="(item, index) in data">
            <van-index-anchor :index="index" :key="index" />
            <van-cell
              center
              v-for="(item2, index2) in item"
              :key="index2"
              :title="item2.realName"
              :label="item2.userPost"
              @click.native.stop="choiceMail(item2.userBaseId, item2.realName)"
            >
            </van-cell>
          </template>
        </van-index-bar>
      </van-tab>

这样写没实现了,各位帮忙看看、谢谢了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

霊感 2022-09-20 00:51:39
const dict = {
    c: [{id:1}, {id: 2}],
    b: [{id:11}, {id: 22}],
    a: [{id:111}, {id: 222}],
}

const sortByLetter = (dict) => {
    const letters = Object.keys(dict).sort();
    const ret = letters.map(letter => ({ letter, children: dict[letter]}));
    return ret;
}

你在这个基础上改一下就可以了

汹涌人海 2022-09-20 00:51:39

array有自带的sort方法,
可以自定义sort中的排序规则

a= [{name:"bbb"},{name:"ddd"},{name:"aaa"}]

a.sort(function(a,b){
    if(a.name<b.name){
        return -1
    }else{
        return 1
    }
})

每次拿出两个元素对比,a<b就返回-1往后排,否则往前排
如果是中文的话可能会更复杂点,因为要转到汉语拼音,目前只有少数浏览器有这个函数localeCompare

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文