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

如何使用Ramda从对象创建属性/值数组?

  •  -1
  • Radex  · 技术社区  · 8 年前

    我有一个像

    const obj = {
       apple:'red',
       banana:'yellow'
    }
    

    我需要使用ramda返回一个带有属性/值的数组。

    例子:

    [
        {
            name: 'apple',
            value:'red'
        },
        {
            name: 'banana',
            value:'yellow'
        },
    ]
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Ross Mackay    8 年前

    ramda解决方案:

    R.pipe(
      R.toPairs,
      R.map(R.zipObj(['name', 'value']))
    )(obj)
    
        2
  •  1
  •   felixmosh    8 年前

    您可以在没有任何第三方库的情况下通过 Object.entries ,返回一个数组,该数组包含键&值,在其上映射以将其转换为对象。

    const obj = {
      apple: 'red',
      banana: 'yellow'
    };
    
    const result = Object.entries(obj)
      .map(([name, value]) => ({
        name,
        value
      }));
    
    console.log(result);