我有四个数组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。
答案 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]
。