អារេ JavaScript : ការយល់ដឹងអំពីការកាត់បន្ថយមុខងារ

វាក្យសម្ព័ន្ធ

arr.reduce(callbackFunction, [initialValue])

តើការកាត់បន្ថយធ្វើ?

កាត់បន្ថយគឺជាអនុគមន៍ដែលរង្វិលជុំតាមរយៈការអារេមួយ.

ប្រតិបត្ដិការត្រូវបានដំណើរការលើអារេតាមរយៈមុខងារ callback មួយ.

នៅចុងបញ្ចប់នៃប្រតិបត្តិការនៅលើអារេ, កាត់បន្ថយត្រឡប់តម្លៃតែមួយ

កាត់បន្ថយអាចត្រូវបានប្រើ, ឧទាហរណ៍, សរុបរទេះផ្សារទំនើបមួយ

ឧទាហរណ៍

  អនុញ្ញាតឱ្យទៅដល់ = [1,2,3,4,5];
  arr.reduce( (accumulator, តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ, currentIndex, អារេ) => { 
      //ប្រតិបត្ដិការមួយចំនួន;
      វិលត្រឡប់មកវិញអ្វីមួយ;
  });

 

អនុគមន៍ហៅមកវិញនេះ

មុខងារ callback នេះត្រូវបានយកមកប្រើសម្រាប់ធាតុគ្នានៅក្នុងអារេ, ឆ្លងកាត់នៅ 4 អាគុយម៉ង់ដែលត្រូវបានអនុម័តដោយមុខងារកាត់បន្ថយ.

ទាំងនេះ 4 អាគុយម៉ង់បន្ទាប់មកអាចត្រូវបានប្រើក្នុងមុខងារ callback របស់យើង.

ត្រូវការអាគុយម៉ង់ចំនួនបួន

  1. accumulator – ធាតុដំបូងនៃអារេនៅលើរង្វិលជុំដំបូងឬតម្លៃដំបូងប្រសិនបើអ្នកផ្គត់ផ្គង់. បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន.
  2. តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ – ធាតុបច្ចុប្បន្ននៅក្នុងអារេ. ចាប់ផ្តើមពីធាតុទីពីរក្នុងឧអារេ. ទៅដល់[1], នៅពេលដែលអាគុយម៉ង់តម្លៃដំបូងគឺមិនត្រូវបានអនុម័ត. ប្រសិនបើអាគុយម៉ង់តម្លៃដំបូងត្រូវបានអនុម័តតម្លៃបន្ទាប់មកបច្ចុប្បន្នចាប់ផ្តើមពីទី 1 ក្នុងការទៅដល់ធាតុអារេ[0].
  3. currentIndex – សន្ទស្សន៍នៃធាតុបច្ចុប្បន្ន.
  4. អារេ – អារេទាំងមូល.

ឧទាហរណ៍ការងារ

អនុញ្ញាតឱ្យទៅដល់ = [1,2,3,4,5];

arr.reduce(
  (accumulator, តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ, currentIndex, អារេ) => {
    console.log(`accumulator (នៅលើរង្វិលជុំទី 1, កំណើនគឺទៅដល់[0], បន្ទាប់មកវាគឺជាតម្លៃត្រឡប់មកវិញនៃរង្វិលជុំមុន): ${accumulator}`);
    console.log(`currentValue (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[1]): ${តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`អារេ: ${អារេ}`);
    console.log('---');
    accumulator ត្រឡប់មកវិញ + តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ;
  }
);

ទិន្នផល

accumulator (នៅលើរង្វិលជុំទី 1, កំណើនគឺទៅដល់[0], បន្ទាប់មកវាគឺជាតម្លៃត្រឡប់មកវិញនៃរង្វិលជុំមុន): 1
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[1]): 2
currentIndex: 1
អារេ: 1,2,3,4,5
---
accumulator (នៅលើរង្វិលជុំទី 1, កំណើនគឺទៅដល់[0], បន្ទាប់មកវាគឺជាតម្លៃត្រឡប់មកវិញនៃរង្វិលជុំមុន): 3
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[1]): 3
currentIndex: 2
អារេ: 1,2,3,4,5
---
accumulator (នៅលើរង្វិលជុំទី 1, កំណើនគឺទៅដល់[0], បន្ទាប់មកវាគឺជាតម្លៃត្រឡប់មកវិញនៃរង្វិលជុំមុន): 6
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[1]): 4
currentIndex: 3
អារេ: 1,2,3,4,5
---
accumulator (នៅលើរង្វិលជុំទី 1, កំណើនគឺទៅដល់[0], បន្ទាប់មកវាគឺជាតម្លៃត្រឡប់មកវិញនៃរង្វិលជុំមុន): 10
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[1]): 5
currentIndex: 4
អារេ: 1,2,3,4,5
---

 

ការផ្តល់តម្លៃដំបូង

បញ្ជាក់ប៉ារ៉ាម៉ែត្រទីពីរ (initialValue) ក្នុងមុខងារកាត់បន្ថយនឹងបង្កឱ្យ initialValue ត្រូវបានអនុម័តជាអាគុយម៉ង់ accumulator មួយនៅលើរង្វិលជុំដំបូង.

ចំណាំថាតម្លៃបច្ចុប្បន្ននៅលើរង្វិលជុំទី 1 ឥឡូវនេះចាប់ផ្តើមនៅធាតុដំបូងរបស់អារ៉េ

ឧទាហរណ៍ការងារ

  អនុញ្ញាតឱ្យទៅដល់ = [1,2,3,4,5];

  arr.reduce(
  (accumulator, តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ, currentIndex, អារេ) => {
    console.log(`accumulator ( រង្វិលជុំទី 1 នៅលើ, នេះគឺជាតម្លៃដំបូង, បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន): ${accumulator}`);
    console.log(`currentValue (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[0]): ${តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`អារេ: ${អារេ}`);
    console.log('---');
    accumulator ត្រឡប់មកវិញ + តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ;
  }, 0
);

ទិន្នផល

accumulator ( រង្វិលជុំទី 1 នៅលើ, នេះគឺជាតម្លៃដំបូង, បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន): 0
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[0]): 1
currentIndex: 0
អារេ: 1,2,3,4,5
---
accumulator ( រង្វិលជុំទី 1 នៅលើ, នេះគឺជាតម្លៃដំបូង, បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន): 1
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[0]): 2
currentIndex: 1
អារេ: 1,2,3,4,5
---
accumulator ( រង្វិលជុំទី 1 នៅលើ, នេះគឺជាតម្លៃដំបូង, បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន): 3
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[0]): 3
currentIndex: 2
អារេ: 1,2,3,4,5
---
accumulator ( រង្វិលជុំទី 1 នៅលើ, នេះគឺជាតម្លៃដំបូង, បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន): 6
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[0]): 4
currentIndex: 3
អារេ: 1,2,3,4,5
---
accumulator ( រង្វិលជុំទី 1 នៅលើ, នេះគឺជាតម្លៃដំបូង, បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន): 10
តម្លៃ​នា​ពេល​បច្ចុប្បន្ន​នេះ (រង្វិលជុំតាមរយៈអារេ, ចាប់ផ្តើមនៅទៅដល់[0]): 5
currentIndex: 4
អារេ: 1,2,3,4,5
---