Pertama terima kasih sebelumnya untuk membaca. Saya telah mencari di mana-mana dan saya sangat baru dalam Javascript dan mencoba memahami cara terbaik untuk menangani masalah khusus ini.

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();

Contoh JS Bin

Kode yang sebenarnya saya tulis adalah untuk titik akhir web yang mendapatkan JSON yang kemudian saya uraikan dan siapkan untuk memposting ke lembar google (ini sedang ditulis dalam GAS). Apa yang ingin saya lakukan, untuk efisiensi, adalah mengembalikan hasil yang setara yang ditunjukkan dalam 'second(string).code' tanpa menjalankan second() setiap kali karena kode yang saya tulis cukup panjang. Saya telah mempertimbangkan untuk membuat array sebagai global tetapi ini akan membuat hidup lebih sulit ketika JSON dimodifikasi.

Apa cara paling efisien untuk mencapai ini? Saya menghargai ini agak jelek dan mungkin bukan pendekatan yang tepat untuk JSON tetapi saya belajar dalam langkah-langkah kecil dan bantuan apa pun dihargai :)

0
Hamsandwich 18 Juni 2020, 03:22

1 menjawab

Jawaban Terbaik

Selamat datang di StackOverflow & Javascript. Anda dapat mencoba menetapkan output dari second() ke variabel. Maka itu tidak akan dieksekusi berulang kali. Silakan periksa kode di bawah ini. Juga memindahkan fungsi kedua akan membuat kode Anda sedikit lebih efisien.

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();
1
Chathura Widanage 18 Juni 2020, 04:13