Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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 在新的obj中,使用ES6扩展表示法是最重要的_Javascript_Object_Ecmascript 6 - Fatal编程技术网

Javascript 在新的obj中,使用ES6扩展表示法是最重要的

Javascript 在新的obj中,使用ES6扩展表示法是最重要的,javascript,object,ecmascript-6,Javascript,Object,Ecmascript 6,我有两个目标 const resolver = { Query: { hi() { return 'Hello Level Up'; } } }; const resolver2 = { Query: { resolutions() { return [ { _id: 'alksdfaqwef231adsf2', name: 'Get stuff done!' }

我有两个目标

const resolver = {
  Query: {
    hi() {
      return 'Hello Level Up';
    }
  }
};

const resolver2 = {
  Query: {
    resolutions() {
      return [
        {
          _id: 'alksdfaqwef231adsf2',
          name: 'Get stuff done!'
        },
        {
          _id: 'wefqwefasdf',
          name: 'Get stuff done 2!'
        }
      ];
    }
  }
}
每当我做一些事情,比如:

const resolvers = { ...resolver, ...resolver2 };
第一个冲突解决程序被重写,只有当我使用console.log时,我才拥有它

{ Query: { resolutions: [Function: resolutions] } }
我希望它有:

{ Query: { hi: [Function: hi], resolutions: [Function: resolutions] } }

为了解决这个问题,我引入了一个名为
lodash
的包,并使用了
merge
方法

const resolvers = merge(resolver, resolver2);
产出:

{ Query: { hi: [Function: hi], resolutions: [Function: resolutions] } }

为了解决这个问题,我引入了一个名为
lodash
的包,并使用了
merge
方法

const resolvers = merge(resolver, resolver2);
产出:

{ Query: { hi: [Function: hi], resolutions: [Function: resolutions] } }

已经提到了,但这就是spread操作符的工作方式。要进行深度合并,您需要自己编写一个递归方法。或者使用一个非常流行的小型图书馆,名为

但在您的情况下,这将起作用:

const resolvers = { 
  Query: {
    ...resolver.Query,
    ...resolver2.Query
  } 
};

已经提到了,但这就是spread操作符的工作方式。要进行深度合并,您需要自己编写一个递归方法。或者使用一个非常流行的小型图书馆,名为

但在您的情况下,这将起作用:

const resolvers = { 
  Query: {
    ...resolver.Query,
    ...resolver2.Query
  } 
};

是的,它是故意这样做的。问题是什么?你期望会发生什么?你可能想要吗<代码>常量解析器={resolver,resolver2}它的工作方式应该是这样的。
const resolvers={Query:{…resolver.Query,…resolver2.Query}
是的,它是通过设计实现的。问题是什么?你期望会发生什么?你可能想要吗<代码>常量解析器={resolver,resolver2}它的工作方式应该是这样的。
const resolvers={Query:{…resolver.Query,…resolver2.Query}
lodash是这类东西的一个非常好的库。lodash是这类东西的一个非常好的库。这绝对有效,我会给你答案,因为我在ES6中问过如何做,但是我最终使用了lodash。这绝对有效,我会给你答案,因为我在ES6中问过如何使用lodash,但我最终使用了lodash。