我想写一个表达式,它取query
参数的值,并生成一个新对象,其中包含query
和默认$sort
值中的所有内容,但只有在$sort
尚不存在的情况下才会生效。ES6:扩展运算符的条件使用
我觉得我应该使用扩展运算符...
来做到这一点,但不知道如何在这种情况下使用它。
下面的代码不能正常工作,因为它总是返回{$sort: {priority: -1, createdAt: -1}}
理想情况下,应打印出什么在旁边console.log
报表注释:
'use strict'
const funcUnderTest = (query) => ({
query: /^sort/.test(query) ? query : {$sort: {priority: -1, createdAt: -1}}
})
console.log(funcUnderTest(null)) // Should be { query: {$sort: {priority: -1, createdAt: -1}}}
console.log(funcUnderTest(({}))) // Should be { query: {$sort: {priority: -1, createdAt: -1}}}
console.log(funcUnderTest(({forCandidate: 123}))) // Should be { query: {forCandidate: 123, $sort: {priority: -1, createdAt: -1}}}
console.log(funcUnderTest(({$sort: {name:1}}))) // Should be { query: {$sort: {name: 1}}}
console.log(funcUnderTest(({forCandidate: 123, $sort: {name:1}}))) // Should be { forCandidate: 123, query: {$sort: {name: 1}}}
正则表达式适用于字符串,但似乎是把物体插入funcUnderTest功能,或许可以解释为什么它总是失败。 – jollarvia
我不知道为什么你认为传播运营商会在这里帮助? – Bergi
'forCandidate'应该始终是查询的一部分,总是在外面,还是真的是可变的,取决于是否有排序键? – Bergi