Сортировка буквенно-цифрового значения в массиве объектов с использованием JavaScript?

Я получаю строку массив полей объектов из базы данных, которая содержит значение, подобное:dataarray=[{name:'xyz',id:' '},{name:'abc',id:'DOC-TEMP-1'},{name:'efg',id:''},{name:'abc',id:'DOC-TEMP-21'},{name:'abc',id:''},{name:'jklm',id:'DOC-TEMP-2'}];,

Я хочу отсортировать этот массив на основе идентификатора, поэтому я попытался сделать это с помощью метода сортировки следующим образом:

dataarray.sort(function(a,b){
                var a1 = a['id'].split('-');
                var b1 = b['id'].split('-');
                console.log('value in a1: '+a1);
                console.log('value in b1: '+b1);
                if(a1[2] =='' || a1[2]==null)
                {
                    a1[2] == 0;
                }if(b1[2]=='' || b1[2]==null)
                {
                    b1[2] == 0;
                }
                return a1[2]-b1[2];
            });

Но это дает мне неверный результат.

я хочу сначала показать нулевые идентификаторы, а затем сортировать их по номеру.

Как я могу это сделать?

1 ответ

Решение

Просто небольшая ошибка, вы используете '==' вместо '=' для присваивания значений внутри ваших условий.

Другие вопросы по тегам