繁体   English   中英

有没有办法映射给定引用数组的对象数组?

[英]Is there a way to map an array of objects given a reference array?

我目前正在尝试按照给定引用数组的相同顺序对对象数组进行排序。 任何人都有基于性能的良好解决方案? 下面是一个例子......

let example = () => {
    let referenceArray = ['name', 'date', 'creator','description'];

    let orderObject = [
        {type:'txt',orderBy:'date'},
        {type:'txt',orderBy:'name'},
        {type:'txt',orderBy:'description'},
        {type:'txt',orderBy:'creator'}
    ];

    // code to sort object here?

}

编辑:看起来我能够实施一个解决方案。 使用下面的代码,我能够将对象映射为与数组具有相同的顺序。

let example = () => {
    let referenceArray = ['name', 'date', 'creator','description'];
    let copy = [];
    let orderObject = [
        {type:'txt',orderBy:'date'},
        {type:'txt',orderBy:'name'},
        {type:'txt',orderBy:'description'},
        {type:'txt',orderBy:'creator'}
    ];

    // code to sort object here?
    orderObject.forEach((x) => {
        let index = referenceArray.indexOf(x.orderBy);
        copy.splice(index,0,x);
    });
}

看起来我能够实现自己的解决方案。

let example = () => {
    let referenceArray = ['name', 'date', 'creator','description'];
    let copy = [];
    let orderObject = [
        {type:'txt',orderBy:'date'},
        {type:'txt',orderBy:'name'},
        {type:'txt',orderBy:'description'},
        {type:'txt',orderBy:'creator'}
    ];

    // code to sort object here?
    orderObject.forEach((x) => {
        let index = referenceArray.indexOf(x.orderBy);
        copy.splice(index,0,x);
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM