JS ES6中的翻转功能

时间:2016-02-14 16:23:19

标签: facebook immutable.js

我正在使用以下代码(从facebook' immutable.js页面中选取):

    Immutable.Seq({a:1, b:1, c:1})
  .flip().map(key => key.toUpperCase()).flip().toObject();

我试图找到flip()函数的定义位置。  检查Seq对象的属性,然后在将flip()应用于Seq对象后,它返回:

Seq [ '_object', '_keys', 'size' ]

Seq flip [ '_iter',
  'size',
  'flip',
  'reverse',
  'has',
  'includes',
  'cacheResult',
  '__iterateUncached',
  '__iteratorUncached' ]

我猜它是不可变库的一部分。 lodash具有类似的功能,但它不一样。

维克拉姆

2 个答案:

答案 0 :(得分:1)

你在找这个吗?

mixin(KeyedIterable, {

  // ### More sequential methods

  flip() {
    return reify(this, flipFactory(this));
  },

https://github.com/facebook/immutable-js/blob/a18350f595fcb33cd6d9680be451111d1c196c1f/src/IterableImpl.js#L494

答案 1 :(得分:0)

有关文档,请参阅https://facebook.github.io/immutable-js/docs/#/Collection.Keyed

它会翻转键和值,因此{a:' x',b:' y'}变为{x:' a',y:&# 39; b'}