当我知道我应该使用二维数组时使用两个数组

Phi*_*enn 1 javascript

我有以下内容:

var X = $('p:first');
$(X).each(function(index,Element) {
    tbody = '';
    tr = '<tr><td>' + index + '</td><td>';
    var arr = [];
    var typ = [];
    for (prop in Element) {
        arr[arr.length] = prop;
        typ[arr.length] = typeof Element[prop];
    }
    arr = arr.sort();
    for (var i=0,ii=arr.length;i<ii;i++) {
        tbody += tr + arr[i] + '</td><td>' + typ[i] + '</td></tr>';
        tr = '<tr><td>&nbsp;</td><td>';
    }
});
$('body').append('<table class="border">' + tbody + '</table>');
Run Code Online (Sandbox Code Playgroud)

问:如何重写以消除typ数组,而不是使arr成为二维数组?

Poi*_*nty 5

你可以使它成为一个对象数组:

    var arr = [];
    for (prop in Element) {
      arr.push({ name: prop, type: typeof Element[prop] });
    }
Run Code Online (Sandbox Code Playgroud)

你必须改变".sort()":

    arr = arr.sort(function(a, b) { return a.name > b.name ? 1 : a.name < b.name ? -1 : 0; });
Run Code Online (Sandbox Code Playgroud)