cari

Rumah  >  Soal Jawab  >  teks badan

Terdapat masalah apabila fungsi getFirstHalf mengembalikan hasilnya

Saya sedang membangunkan fungsi yang mengambil tatasusunan dan mengembalikan separuh pertama tatasusunan, tetapi sebelum mengembalikannya ia memanggil dirinya sendiri sehingga panjang tatasusunan ialah 1:

const getFirstHalf = function (array) {
  const firstHalf = [];
  for (let i = 0; i < Math.trunc(array.length / 2); i++) {
    firstHalf.push(array[i]);
  }
  if (firstHalf.length !== 1) {
    getFirstHalf(firstHalf);
  }
  return firstHalf;
};

Semuanya berfungsi seperti yang diharapkan, sehingga baris di mana keputusan dikembalikan, tatasusunan mendapat nilai sebelumnya sehingga ia adalah separuh pertama keadaan pertama tatasusunan. Harap awak faham maksud saya.

Contohnya:

const myArray = [1,2,3,4,5,6,7,8];
console.log(getFirstHalf(numbers));

Saya menjangkakan mendapat [1] sebagai keputusan, tetapi saya mendapat [1,2,3,4].

P粉311617763P粉311617763497 hari yang lalu829

membalas semua(1)saya akan balas

  • P粉009186469

    P粉0091864692023-09-23 00:09:10

    Anda perlu mengembalikan hasil daripada rekursi:

    akan

    getFirstHalf(firstHalf);
    

    ditukar kepada

    return getFirstHalf(firstHalf);
    

    balas
    0
  • Batalbalas