query
パラメータの値をとり、$sort
が存在しない場合に限り、の値とデフォルト値の$sort
のすべてを含む新しいオブジェクトを生成する式を作成したいとします。ES6:スプレッド演算子の条件付き使用
これを行うには普及担当者...
を使用する必要がありますが、このインスタンスでどのように使用できるかはわかりません。それは常に理想的にはconsole.log
文に次のコメントに何があるかプリントアウトする必要があり{$sort: {priority: -1, createdAt: -1}}
を返すよう
以下のコードは動作しません:あなたはこのためObject.assign
を使用することができます
'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