0

I have this snippet of code

function(memo, value, key) {
    if (!!value) {
      memo.push({
        'property': 'loopbackFilter',
        'value': {
          key : {
            'like' : '%' + value + '%'
          }
        }
      });
    }
    return memo;
  }

Sublime Text says that "key" parameter is not being used, and in fact the resulting JSON object is

"where": {
  "key": { <--- key is literally "key"
    "like": "%value%" (VALUE is an actual value, so it works here)
  }
}

Why does this happen?

ITKinq
  • 3
  • 1

1 Answers1

0

JS object literals are different than JSON objects: In JavaScript you don't need to quote the property names:

var obj = { foo: "bar" }

For computed property names use the bracket syntax:

[key] : {
  'like' : '%' + value + '%'
}

Please also note that this is an ES6 feature.

Christian Zosel
  • 1,424
  • 1
  • 9
  • 16