我如何知道javascript中排序数组的名称

时间:2014-01-27 20:09:30

标签: javascript arrays sorting

我有四个数组A,B.C和D.例如: //示例代码在这里:a的长度是1长度b是4长度c是1长度d是2。

var a = [1];
var b = [2,3,4,5];
var c = [6];
var d = [7,8];

我想根据较大的数组长度对这四个数组进行排序,并且我还希望数组的名称按排序顺序排列。所以输出将是: 排序数组的名称是b,d,a,c。

2 个答案:

答案 0 :(得分:5)

我就是这样做的:

var arr  = {}
arr["a"] = [1];
arr["b"] = [2,3,4,5];
arr["c"] = [6];
arr["d"] = [7,8];

Object.keys(arr).sort(function(a, b){ return arr[a].length < arr[b].length;  });

我试图保持变量的独立性并且更接近原始代码。

答案 1 :(得分:1)

您的评论表明,您既需要输入数组名称列表,又需要按顺序将输入数组连接在一起的数组。你可以一步到位:

var [keys, array] = let (
    all = [["a", a], ["b", b], ["c", c], ["d", d]]
        .sort(function (a, b) { return a[1].length < b[1].length })
) [
    all.map(function (x) { return x[0] }),
    all.reduce(function (a, b) { return a.concat(b[1]) }, [])
];

使用您的数据,keys将包含["b", "d", "a", "c"]array将包含[2,3,4,5,7,8,1,6]