首页 > 解决方案 > 在没有箭头功能的情况下转换以下逻辑,因为它在 IE 中不起作用

问题描述

我正在尝试使用 out 箭头功能转换以下逻辑,因为它在 IE 中不起作用

我已经转换了 getCellValue。

const getCellValue = function(tr, idx){
    tr.children[idx].innerText || tr.children[idx].textContent
};

我无法转换比较器 const 函数和其他逻辑。

const comparer = (idx, asc) => (a, b) => (
    (v1, v2) => v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ? 
        v1 - v2 : 
        v1.toString().localeCompare(v2)
)(getCellValue(asc ? a : b, idx), getCellValue(asc ? b : a, idx));

document.querySelectorAll('th').forEach(th => th.addEventListener('click', (() => {
    const table = th.closest('table');
    Array.from(table.querySelectorAll('.message-table:nth-child(n)'))
         .sort(comparer(Array.from(th.parentNode.children).indexOf(th), this.asc = !this.asc))
         .forEach(tr => document.getElementById("tblMsgBody").appendChild(tr));

    Array.from(table.querySelectorAll('.show-documents:nth-child(n)'))
         .forEach(tr => {
             var elementId = tr.id.replace("document-handling-", "")
             $("#tr-" + elementId).after(tr)
         });
    })
));

标签: javascript

解决方案


'use strict';

var comparer = function comparer(idx, asc) {
return function (a, b) {
    return function (v1, v2) {
        return v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ? v1 - v2 : v1.toString().localeCompare(v2);
    }(getCellValue(asc ? a : b, idx), getCellValue(asc ? b : a, idx));
    };
};

document.querySelectorAll('th').forEach(function (th) {
    return th.addEventListener('click', function () {
        var table = th.closest('table');
    Array.from(table.querySelectorAll('.message-table:nth-child(n)')).sort(comparer(Array.from(th.parentNode.children).indexOf(th), undefined.asc = !undefined.asc)).forEach(function (tr) {
        return document.getElementById("tblMsgBody").appendChild(tr);
    });

       Array.from(table.querySelectorAll('.show-documents:nth-child(n)')).forEach(function (tr) {
            var elementId = tr.id.replace("document-handling-", "");
            $("#tr-" + elementId).after(tr);
        });
    });
});

推荐阅读