Не удается получить доступ к определенному свойству в массиве JavaScript объектов, используя лямбда-функцию с Node JS - PullRequest
0 голосов
/ 25 апреля 2019

// Я могу получить доступ к свойству AccountSite из других обработчиков / функций в файле, используя циклы, кроме этой функции.Я могу получить все другие свойства, используя циклы в функции, кроме этой.

// Я попробовал Мой код в visual studio, используя console.log для отладки вместо Say (в Alexa), и я могу получить доступ ксвойство с точным кодом, за исключением этого изменения.

const Data = [{
    AccountName: "Jhon Doe ",
    Phone: "353262",
    Website: "something.com",
    AccountSite: "Random Name",
    Description: "Random Description",
    AccountOwner: "Jhondoe@yahoo.com"
  },
{
    AccountName: "Jane Doe ",
    Phone: "353223462",
    Website: "something2.com",
    AccountSite: "Random Name2",
    Description: "Random Description2",
    AccountOwner: "Janedoe@yahoo.com"
  },{
    AccountName: "Susan Doe ",
    Phone: "353232462",
    Website: "something3.com",
    AccountSite: "Random Name3",
    Description: "Random Description3",
    AccountOwner: "susandoe@yahoo.com"
  },
];

const getAccounSite_Handler = {

//handler code
//handler code
//handler code

let say;

Data.map(pos => {
 say= ` ${pos.AccountSite}`;   //if I put pos.Propertyname it would give me the property for the last object in the array for the other propert name except accountsite

// Account site is accessible in this handler if I don't use a loop

//have tried for loop and map 

//have a very similar code for another skill but it is working; it is accessing the properties


//end of the handler

}


When I run Alexa it says  "There was a problem with the requested skill's response" when the handler is called

1 Ответ

0 голосов
/ 01 мая 2019

Как я понял, вы хотите сделать Alexa, чтобы прочитать все AccountSites?Код, который вы сейчас написали, всегда переназначает say для каждого экземпляра цикла.Если вы хотите построить список значений и сохранить его в переменной say, ваш код должен выглядеть следующим образом:

let say = '';

Data.forEach(pos => {
   say += `${pos.AccountSite} `;
});

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

"Random Name Random Name2 Random Name3 "

Это тот результат, который вы хотели?

...