我想寫一個表達式,它取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