2017-02-21 11 views
0

У меня есть этот фрагмент кодаПочему значение параметра не заменяется?

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

Sublime Text говорит, что параметр «ключ» не используется, а на самом деле полученный объект JSON является

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

Почему это происходит?

ответ

0

JS объект литералов отличаются объектов JSON: В JavaScript вам не нужно цитировать имена свойств:

var obj = { foo: "bar" } 

Для computed property names использовать синтаксис кронштейн:

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

Пожалуйста, обратите внимание что это функция ES6.

+0

Просто указатель, в настоящее время у вас недостаточно повторений, но когда вы их получите, ** Пожалуйста, выберите, чтобы закрыть ** вместо ответа. – Rajesh

+0

Хорошо, спасибо за подсказку! –

+0

Спасибо за ответ, есть ли другой способ сделать это? Мое приложение падает, когда я пытаюсь скомпилировать его, и я думаю, что это потому, что это решение только для EC6. – ITKinq