*初级小白*~ 2023-02-13 13:53 采纳率: 97.9%
浏览 32
已结题

关于#JS#的问题,如何解决?

根据arr数组的顺序,把init里面的对象按照arr的顺序放,得出arr3数组


     const arr = ['operation', 'age', 'name', 'address'];
        const init = [{
            title: 'name',
            dataIndex: 'name',
            width: '25%',
        }, {
            title: 'age',
            dataIndex: 'age',
            width: '15%',
        }, {
            title: 'address',
            dataIndex: 'address',
            width: '40%',
        }, {
            title: 'operation',
            dataIndex: 'operation',
        }]
        let arr3 = [{
            title: 'operation',
            dataIndex: 'operation',
        }, {
            title: 'age',
            dataIndex: 'age',
            width: '15%',
        }, {
            title: 'name',
            dataIndex: 'name',
            width: '25%',
        }, {
            title: 'address',
            dataIndex: 'address',
            width: '40%',
        }, ];
  • 写回答

6条回答 默认 最新

  • CSDN专家-showbo 2023-02-13 16:08
    关注

    用数组sort下就行,排序回调中的2个a,b参数,分别找dataIndex在arr中的下标,升序用aIndex-bIndex,降序则bIndex-aIndex

    
        const arr = ['operation', 'age', 'name', 'address'];
        const init = [{
            title: 'name',
            dataIndex: 'name',
            width: '25%',
        }, {
            title: 'age',
            dataIndex: 'age',
            width: '15%',
        }, {
            title: 'address',
            dataIndex: 'address',
            width: '40%',
        }, {
            title: 'operation',
            dataIndex: 'operation',
            }]
    
        let arr3 = JSON.parse(JSON.stringify(init)).sort(function (a, b) {
            var aIndex = arr.findIndex(i => a.dataIndex == i);
            var bIndex = arr.findIndex(i => b.dataIndex == i);
    
            return aIndex - bIndex;
        })
        console.log(arr3)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月13日