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_Ecmascript 6 - Fatal编程技术网

Javascript 使用数组';价值观

Javascript 使用数组';价值观,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我在javascript中有一个数组,看起来像:[[1,23.34,-5.22],[1,2.34,-52.22],[2,0.34,-5.02],…]。我需要按数组中的第一个数字进行分组,并生成两个不同的输出: 对象(key:2D数组),其外观如下: {1: [[23.34, -5.22], [2.34, -52.22]], 2: [[0.34, -5.02], ...], ...} 仅表示分组的三维阵列: [[[23.34, -5.22], [2.34, -52.22]], [[0.3

我在
javascript
中有一个数组,看起来像:
[[1,23.34,-5.22],[1,2.34,-52.22],[2,0.34,-5.02],…]
。我需要按数组中的第一个数字进行分组,并生成两个不同的输出:

  • 对象(
    key:2D数组
    ),其外观如下:

    {1: [[23.34, -5.22], [2.34, -52.22]],
     2: [[0.34, -5.02], ...],
     ...} 
    
  • 仅表示分组的三维阵列:

    [[[23.34, -5.22], [2.34, -52.22]], [[0.34, -5.02], ...], ...]
    
  • 我想使用
    ES6
    。如有任何建议,将不胜感激。

    请检查此代码

    let数组=[[1,23.34,-5.22],[1,2.34,-52.22],[2,0.34,-5.02];
    设obj={};
    array.forEach(子数组=>
    {
    设key=subArray[0];
    如果(!obj[key])
    obj[key]=[];
    子阵列拼接(0,1);
    obj[键]。推送(子阵列);
    });
    控制台日志(obj);
    设keys=Object.keys(obj);
    设array3D=[];
    keys.forEach(key=>{
    array3D.push(对象[键])
    });
    
    控制台日志(array3D)
    已经有一个答案使用了
    map
    方法,但我发现在这种情况下使用
    forEach
    更合适

    const a=[
    [1, 23.34, -5.22], [1, 2.34, -52.22], [2, 0.34, -5.02]
    ];
    设b={};
    设c=[];
    a、 forEach(x=>{
    如果(!b[x[0]]){
    b[x[0]]=[];
    }
    b[x[0]]推(x.slice(1));
    });
    控制台日志(b);
    Object.values(b.forEach(x=>c.push(x));
    
    控制台日志(c)map
    容易混淆。虽然
    .map()
    的字符数略少,但实际使用它的目的相当于
    .forEach()
    。通过发布答案,你要做的主要事情是回答一个问题,即询问如何做某事(即,你正在帮助人们学习如何做某事)。因此,保持清晰比保存多达8(2*4)个字符(或者只是想变得聪明,或者在堆栈溢出上打代码高尔夫)重要得多。@Makyen谢谢你通知我