Не понимаю результаты node.js при использовании PUSH - PullRequest
0 голосов
/ 05 мая 2018

Я работаю над лямбдой Alexa Skill и создал небольшой фрагмент кода, чтобы проиллюстрировать мою проблему:

exports.handler = function(event, context)
{
    //CREATE A MODEL
    var model1 = {"endpoints":[ ]};

    //CREATE ANOTHER MODEL  
    var model2 = {"endpointid": "stuff"};

    //CREATE THE RESULT

    var result = model1;
    model2.endpointid="switch1";
    result.endpoints.push(model2);

    model2.endpointid="switch2";
    result.endpoints.push(model2);

    var  json = JSON.stringify(result);
    context.succeed({json});
};

Ответ:

{
  "json": "{\"endpoints\":[{\"endpointid\":\"switch2\"},{\"endpointid\":\"switch2\"}]}"
}

Вопрос: Почему я получаю два одинаковых endpointid с?

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Определенно немного сложно разобраться, если вы новичок в JAVA и node.js:

  exports.handler = function(event, context)
   {
      //CREATE A MODEL
      var model1 = {"endpoints":[ ]};

      //CREATE ANOTHER MODEL  
      var model2 = {"endpointid": "stuff","friendly Name": "name"};

     //CREATE THE RESULT


     var  _copy1ofModel2 =JSON.parse (JSON.stringify (model2));
     var  _copy2ofModel2 =JSON.parse (JSON.stringify (model2));

     _copy1ofModel2.endpointid = "switch 1";
     _copy2ofModel2.endpointid = "switch 2";

     model1.endpoints.push(_copy1ofModel2);
     model1.endpoints.push(_copy2ofModel2);


    var  json = JSON.stringify(model1);
    context.succeed({json});

};

Ответ: { "json": "{\" конечные точки \ ": [{\" endpointid \ ": \" switch 1 \ ", \" friendly name \ ": \" name \ "}, {\" endpointid \ ": \" switch 2 \ ", \" friendly Name \ ": \" name \ "}]}".

Спасибо eebbesen за то, что заставил меня смотреть в правильном направлении.

0 голосов
/ 05 мая 2018

Это работает, но я не нахожу все это элегантным:

exports.handler = function(event, context)
{
    //CREATE A MODEL
    var model1 = {"endpoints":[ ]};

    //CREATE ANOTHER MODEL  
    var model2 = {"endpointid": "stuff"};

    //CREATE THE RESULT

    model1.endpoints.push(model2);
    model1.endpoints.push(model2);
    model1.endpoints[0]="switch1";
    model1.endpoints[1]="switch2";

     var  json = JSON.stringify(model1);
   context.succeed({json});

Ответ: "json": "{\" Конечные точки \ ": [\" switch1 \ ", \" switch2 \ "]}"

...