Обработка методов / возврата из функции без запуска функции каждый раз? - PullRequest
0 голосов
/ 18 июня 2020

во первых заранее спасибо за чтение. Я искал повсюду, и я очень новичок в Javascript и пытаюсь понять, как лучше всего справиться с этой конкретной проблемой c.

function first() {

var string = "1,2,3,4,5";

function second(payload){

//in here is a bunch of code that prepares what I need to happen

    randomcode = payload.split(",")[1] + payload.split(",")[0];

    testarray = {
      one: payload.split(",")[0],
      two: payload.split(",")[1],
      three: payload.split(",")[2],
      code: randomcode
      };

      return testarray;  
 }

console.log(second(string).one,second(string).two,second(string).three,second(string).code); 

}

first();

JS Пример корзины

Код, который я на самом деле пишу, предназначен для конечной точки сети, которая получает JSON, который я затем анализирую и готовлю к публикации в листе Google (это пишется в GAS). Что бы я хотел сделать для эффективности, так это возвращать эквивалентный результат, показанный в 'second (string) .code', без запуска second () каждый раз, поскольку код, который я написал, довольно длинный. Я рассматривал создание массива как глобального, но это усложнит жизнь при изменении JSON.

Какой самый эффективный способ добиться этого? Я понимаю, что это немного некрасиво и может быть неправильным подходом для JSON, но я учусь маленькими шагами, и любая помощь приветствуется :)

1 Ответ

1 голос
/ 18 июня 2020

Добро пожаловать в StackOverflow & Javascript. Вы можете попробовать назначить вывод из second () переменной. Тогда он не будет выполняться повторно. Пожалуйста, проверьте код ниже. Кроме того, перемещение второй функции сделает ваш код более эффективным.

function second(payload){

//in here is a bunch of code that prepares what I need to happen

    randomcode = payload.split(",")[1] + payload.split(",")[0];

    testarray = {
      one: payload.split(",")[0],
      two: payload.split(",")[1],
      three: payload.split(",")[2],
      code: randomcode
      };

      return testarray;  
 }

function first() {

var string = "1,2,3,4,5";

var secondOut = second(string);

console.log(secondOut.one,secondOut.two,secondOut.three,secondOut.code); 

}

first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...