Есть ли способ сопоставить массив объектов с заданным эталонным массивом? - PullRequest
0 голосов
/ 07 июня 2019

В настоящее время я пытаюсь отсортировать массив объектов в том же порядке, что и заданный ссылочный массив.У кого-нибудь есть хорошее решение на основе производительности?Вот пример ниже ...

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);
    });
}

1 Ответ

1 голос
/ 07 июня 2019

похоже, я смог реализовать свое собственное решение.

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);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...