Сортировка по номерам и алфавиту в js - PullRequest
0 голосов
/ 11 февраля 2020
productID = '65,78,98,565,12,546,879,456123,456,987,1,312,45,8,546,123,0,165,4566'; productID = 'asd,sad,d,s,as,e,ew,qw,asd,xsad,sad,sad,asd,eqw,sda,ds,wqe,sda,sad,wqewq';


multipleProducts = productID.split(',').sort().sort(function(a, b){return a - b}); productID = multipleProducts.join(','); console.log(productID)

насколько я могу передать эту js функцию, может кто-нибудь узнать или отключить эту функцию в любом сценарии.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Вы можете воспользоваться функцией сортировки, которая учитывает числа и строки, преобразовав значение в число, если значение isFinite, в противном случае получите строку.

const
    ASC = (a, b) => a > b || -(a < b)
    ASC_BY_TYPE = (...p) => ASC(...p.map(v => isFinite(v) ? +v : v));

var productID0 = '65,78,98,565,12,546,879,456123,456,987,1,312,45,8,546,123,0,165,4566',
    productID1 = 'asd,sad,d,s,as,e,ew,qw,asd,xsad,sad,sad,asd,eqw,sda,ds,wqe,sda,sad,wqewq';


console.log(productID0.split(',').sort(ASC_BY_TYPE).join());
console.log(productID1.split(',').sort(ASC_BY_TYPE).join());
0 голосов
/ 11 февраля 2020

productID = '65,78,98,565,12,546,879,456123,456,987,1,312,45,8,546,123,0,165,4566'; productID2 = 'asd,sad,d,s,as,e,ew,qw,asd,xsad,sad,sad,asd,eqw,sda,ds,wqe,sda,sad,wqewq';


multipleProducts = productID.split(',').sort(sortNumbers).join(','); 
console.log(multipleProducts)
multipleProducts2 = productID2.split(',').sort(sortString).join(','); 
console.log(multipleProducts2)

function sortString(a, b){return a > b ? 1 : -1}
function sortNumbers(a,b){return (+a) > (+b) ? 1 : -1}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...