【问题标题】:Is there a shorthand to Object.keys.map是否有 Object.keys.map 的简写
【发布时间】:2017-06-27 23:05:39
【问题描述】:

我想把一个对象变成一个由它的键组成的数组,然后把这个数组映射到别的东西上。

var a = { b:1, c:2};
Object.keys(a).map((key,i) => {
  /*return some transformation of key*/
})

lodash 中是否有任何功能可以做同样的事情?

Object.keys => 将其映射到其他转换后的数组

如果我使用

_.keys(object).map((key) => {
  /*return key transformation*/
})

这是否足够快 - 或者是否有其他一些 lodash 功能?

【问题讨论】:

    标签: javascript object dictionary key lodash


    【解决方案1】:

    Lodash 的地图功能适用于此。 Lodash 有时会因为作为一个大型库而受到不好的评价,但您只能使用此 https://www.npmjs.com/package/lodash.map 下载地图功能。

    一旦你有了它,它的工作原理是这样的:

    import map from 'lodash.map';
    const a = { b:1, c:2 };
    map(a, (val, key) => {
      /*return some transformation of key and/or val*/
    })
    

    希望这会有所帮助:)

    【讨论】:

    • 太棒了,谢谢它的工作原理:我确实从'lodash'导入{地图}
    • 太棒了!是的,这也很有效,我只是经常听到人们抱怨由于大小而安装完整的 lodash,所以我想我会把它扔在那里哈哈。
    【解决方案2】:

    这很容易使用纯javascript实现:

    const map = Object.prototype.map = function (func, object) {
        const iterate = object || this
        const keys = Object.keys(iterate)
        const obj = {}
        for (let i = 0; i < keys.length; i++) {
            const key = keys[i]
            obj[key] = func(key, iterate[key])
        }
        return obj
    }
    
    const aObject = { a: 1 }
    
    console.log(JSON.stringify(aObject.map((key, value) => value + 6)))
    console.log(JSON.stringify(map((key, value) => value + 6, aObject)))

    你可以在函数式和面向对象中使用它:)

    【讨论】:

      【解决方案3】:

      从带有Object.entries的关联数组的简单映射的单行解决方案:

      const map = new Map(Object.entries(a));
      
      // const a = {b: 1, c: 2};
      // 'map' will result into => Map(2) {"b" => 1, "c" => 2}
      

      更多信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#converting_an_object_to_a_map

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-24
        • 2010-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-25
        • 2019-01-23
        • 2022-01-15
        相关资源
        最近更新 更多