Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何知道javascript中排序数组的名称_Javascript_Arrays_Sorting - Fatal编程技术网

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

如何知道javascript中排序数组的名称,javascript,arrays,sorting,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。我会这样做: var arr = {} arr["a"] = [1]; arr["b"] = [2,3,4,5]; arr["c"]

我有四个阵列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。

我会这样做:

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;  });
var arr={}
arr[“a”]=[1];
arr[“b”]=[2,3,4,5];
arr[“c”]=[6];
arr[“d”]=[7,8];
Object.keys(arr).sort(函数(a,b){return arr[a].length

我这样做是为了保持变量的独立性,并且更接近原始代码。

我会这样做:

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;  });
var arr={}
arr[“a”]=[1];
arr[“b”]=[2,3,4,5];
arr[“c”]=[6];
arr[“d”]=[7,8];
Object.keys(arr).sort(函数(a,b){return arr[a].length

我这样做是为了保持变量的独立性,并且更接近您的原始代码。

您的评论说您需要输入数组名称列表和将输入数组按顺序连接在一起所产生的数组。您可以在一个步骤中实现这两个目标:

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]) }, [])
];
var[key,array]=let(
全部=[“a”,a],“b”,b],“c”,c],“d”,d]]
.sort(函数(a,b){返回a[1]。长度

使用您的数据,
将包含
[“b”、“d”、“a”、“c”]
数组
将包含
[2,3,4,5,7,8,1,6]

您的评论说您需要输入数组名称列表和按顺序将输入数组连接在一起生成的数组。您可以在一个步骤中实现这两个目标:

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]) }, [])
];
var[key,array]=let(
全部=[“a”,a],“b”,b],“c”,c],“d”,d]]
.sort(函数(a,b){返回a[1]。长度

使用您的数据,
将包含
[“b”、“d”、“a”、“c”]
数组
将包含
[2,3,4,5,7,8,1,6]
,它们将如何排序?根据长度排序。最后的结果是[2,3,4,5,7,8,1,6],我还需要子数组的名称,它们是b,d,a,c。这样我就知道在最终结果数组中哪个子数组排在第一位了。不,我是问你是如何对它们进行排序的?什么代码…如何排序?根据长度排序。最后的结果是[2,3,4,5,7,8,1,6],我还需要子数组的名称,它们是b,d,a,c。这样我就知道在最终结果数组中哪个子数组排在第一位了。不,我是问你是如何对它们进行排序的?什么代码。。。