代码之家  ›  专栏  ›  技术社区  ›  user1050619

使用映射函数ES6[duplicate]查找数组的长度

  •  -2
  • user1050619  · 技术社区  · 5 年前

    我正在尝试使用下面的代码使用ES6查找数组的长度,但它不起作用。

    a=[[1,2,3,4],[4,5,6]]
    result = a.map(d=>({d[0]:d.length}))
    console.log(result)
    

    这是有效的:-

    a=[[1,2,3,4],[4,5,6]]
    result = a.map(d=>({name:d[0], length:d.length}))
    console.log(result)
    
    3 回复  |  直到 5 年前
        1
  •  0
  •   Loc Mai    5 年前

    使用ES6,要从变量为对象创建键,必须用 [] .

    例如:

    const a = 'first name';
    const name = {
      [a]: 'john',
    };
    
    console.log(name);

    所以这就是你要找的:

    a=[[1,2,3,4],[4,5,6]]
    result = a.map(d=>({[d[0]]:d.length}))
    console.log(result)
        2
  •  0
  •   neilharding    5 年前

    如果您试图以原始数组的第一个元素作为属性名,以数组的长度作为属性值的对象数组结束,我认为您正在寻找这样的对象:

    a=[[1,2,3,4],[4,5,6]]
    result = a.map(d=>({[d[0]]:d.length}))
    console.log(result)
    
        3
  •  0
  •   Loi Nguyen Huynh    5 年前

    我想就是这样了。如果你想要的是 { i: d.length } ,那太容易了,所以我想你想要的是 { [`a[${i}`]: d.length } ,使用 `` ,和 [] .

    a=[[1,2,3,4],[4,5,6]]
    result = a.map((d,i) => ({ [`a[${i}]`]: d.length }))
    console.log(result)