js数组里面对象排序问题

发布于 2022-09-12 23:06:03 字数 2471 浏览 11 评论 0

现在有obj1obj2两个对象,以obj1字段顺序为准,对obj2对象进行排序和更新value值

let obj1 = [
    {
        title:"姓名",
        property:"name",
        width:120
    },
    {
        title:"年龄",
        property:"age", 
        width:120
    },
    {
        title:"角色",
        property:"role",
        width:120
    },
    {
        title:"修改前",
        property:"modify",
        width:120
        children:[
            {
                title:"体重",
                property:"weight",
                width:120
            },
            {
                title:"身高",
                property:"tall",
                width:120
            }
        ]
    }
]
let obj2 = [
   {
        title:"年龄",
        property:"age",
        width:100,
        date:()=>{},
        visible:false,
        id:2
    },
    {
        title:"修改前",
        property:"modify",
        width:100,
        children:[
            {
                title:"身高",
                property:"tall",
                width:100,
                visible:true,
                id:5
            },
            {
                title:"体重",
                property:"weight",
                width:100,
                visible:true,
                id:6
            }
        ]
    },
    {
        title:"姓名",
        property:"name",
        width:100,
        visible:false,
        id:3
    },
    {
        title:"角色",
        property:"role",
        width:100,
        visible:true,
        id:1
    }
]

想要这样的效果

let obj3 = [
    {
        title:"姓名",
        property:"name",
        width:120,
        visible:false,
        id:3
    },
    {
        title:"年龄",
        property:"age",
        width:120,
        visible:false,
        id:2,
        renderWidth: 140,
        date:()=>{}
    },
    {
        title:"角色",
        property:"role",
        width:120,
        visible:true,
        id:1
    },
    {
        title:"修改前",
        property:"modify",
        width:120,
        children:[
            {
                title:"体重",
                property:"weight",
                width:120,
                visible:true,
                id:6
            },
            {
                title:"身高",
                property:"tall",
                width:120,
                visible:true,
                id:5
            }
        ]
    }
]

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

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

发布评论

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

评论(1

Smile简单爱 2022-09-19 23:06:03
  1. 把 arr1 做个 map ,然后遍历 arr2 比较位置。
  2. 把 arr2 做个 map ,然后遍历 arr1 补位置就好了。

我下面这个用的是方案1,比较位置。

image.png

arr1 = [1,6,3,4,2,5,7,8,9]
arr2 = [{
    id: 1,
    key: 1
},{
    id: 2,
    key: 2
},{
    id: 3,
    key: 3
},{
    id: 4,
    key: 4
},{
    id: 5,
    key: 5
},{
    id: 6,
    key: 6
}]
arr2.sort((n,m)=>arr1.indexOf(n.key)-arr1.indexOf(m.key))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文