题解 | #数组排序#
数组排序
https://www.nowcoder.com/practice/18ea36ef9b0c470e9db7681eced6e8df
// 使用排序 var crts = [ { type: 1, price: 100, color: 'black', sales: 3000, name: '牛客logo马克杯' }, { type: 2, price: 40, color: 'blue', sales: 1000, name: '无盖星空杯' }, { type: 4, price: 60, color: 'green', sales: 200, name: '老式茶杯' }, { type: 3, price: 50, color: 'green', sales: 600, name: '欧式印花杯' } ] var ul = document.querySelector('ul'); var upbtn = document.querySelector('.up'); var downbtn = document.querySelector('.down'); // 补全代码 function setArr(arr) { let li = '' for (let i = 0; i < arr.length; i++) { if (arr[i].name) { li += `<li>${arr[i].name}</li>` ul.innerHTML = li } } } // 渲染函数 setArr(crts) upbtn.onclick = function () { let arr = setSort(crts, 'up') setArr(arr) } downbtn.onclick = function () { let arr = setSort(crts, 'down') setArr(arr.reverse()) } // 排序函数 function setSort(value, type) { function _setSort(arr, i, j) { let temp = arr[i] arr[i] = arr[j] arr[j] = temp } for (let i = 0; i < value.length; i++) { for (let j = 0; j < value.length; j++) { if (value[i].sales < value[j].sales) { _setSort(value, j, i) } } } return value }