Отсортировать массив объектов по значеням второго массива

Рейтинг: 3Ответов: 1Опубликовано: 12.12.2014

Нужно отсортировать массив sel по массиву resources или можно создать другой массив, вида sel, только отсортированный по resources.

Есть 2 массива:

Первый массив:

var resources = [
    ["1717", "1859", "3000"],
    ["1616", "1600"]
];

Второй массив, который нужно отсортировать или создать подобный, но отсортированный по первому:

var sel = [
    [
        {"id":"3000","title":"3G"},
        {"id":"1859","title":"4G"},
        {"id":"1717","title":"Customer"}
    ],
    [
        {"id":"1600","title":"Should"},
        {"id":"1616","title":"Ranking"}

    ]
];

Первый элемент массива sel

[
        {"id":"3000","title":"3G"},
        {"id":"1859","title":"4G"},
        {"id":"1717","title":"Customer"}
]

должен иметь порядок, как в массиве resources

["1717", "1859", "3000"]

Заранее спасибо.

Ответы

▲ 4Принят
var sorted_sel = [];
resources.forEach(function(line, i){
    sorted_sel[i] = [];
    line.forEach(function(resources_el){
        sel[i].forEach(function(sel_el){
            if(sel_el.id === resources_el) sorted_sel[i].push(sel_el);
        });
    });
});