អារេ JavaScript : ការយល់ដឹងអំពីការកាត់បន្ថយមុខងារ
វាក្យសម្ព័ន្ធ
arr.reduce(callbackFunction, [initialValue])
តើការកាត់បន្ថយធ្វើ?
កាត់បន្ថយគឺជាអនុគមន៍ដែលរង្វិលជុំតាមរយៈការអារេមួយ.
ប្រតិបត្ដិការត្រូវបានដំណើរការលើអារេតាមរយៈមុខងារ callback មួយ.
នៅចុងបញ្ចប់នៃប្រតិបត្តិការនៅលើអារេ, កាត់បន្ថយត្រឡប់តម្លៃតែមួយ
កាត់បន្ថយអាចត្រូវបានប្រើ, ឧទាហរណ៍, សរុបរទេះផ្សារទំនើបមួយ
ឧទាហរណ៍
អនុញ្ញាតឱ្យទៅដល់ = [1,2,3,4,5];
arr.reduce( (accumulator, តម្លៃនាពេលបច្ចុប្បន្ននេះ, currentIndex, អារេ) => {
//ប្រតិបត្ដិការមួយចំនួន;
វិលត្រឡប់មកវិញអ្វីមួយ;
});
អនុគមន៍ហៅមកវិញនេះ
មុខងារ callback នេះត្រូវបានយកមកប្រើសម្រាប់ធាតុគ្នានៅក្នុងអារេ, ឆ្លងកាត់នៅ 4 អាគុយម៉ង់ដែលត្រូវបានអនុម័តដោយមុខងារកាត់បន្ថយ.
ទាំងនេះ 4 អាគុយម៉ង់បន្ទាប់មកអាចត្រូវបានប្រើក្នុងមុខងារ callback របស់យើង.
ត្រូវការអាគុយម៉ង់ចំនួនបួន
- accumulator – ធាតុដំបូងនៃអារេនៅលើរង្វិលជុំដំបូងឬតម្លៃដំបូងប្រសិនបើអ្នកផ្គត់ផ្គង់. បន្ទាប់មកតម្លៃបានត្រឡប់មកវិញនៃរង្វិលជុំមុន.
- តម្លៃនាពេលបច្ចុប្បន្ននេះ – ធាតុបច្ចុប្បន្ននៅក្នុងអារេ. ចាប់ផ្តើមពីធាតុទីពីរក្នុងឧអារេ. ទៅដល់[1], នៅពេលដែលអាគុយម៉ង់តម្លៃដំបូងគឺមិនត្រូវបានអនុម័ត. ប្រសិនបើអាគុយម៉ង់តម្លៃដំបូងត្រូវបានអនុម័តតម្លៃបន្ទាប់មកបច្ចុប្បន្នចាប់ផ្តើមពីទី 1 ក្នុងការទៅដល់ធាតុអារេ[0].
- currentIndex – សន្ទស្សន៍នៃធាតុបច្ចុប្បន្ន.
- អារេ – អារេទាំងមូល.
ឧទាហរណ៍ការងារ
អនុញ្ញាតឱ្យទៅដល់ = [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 ---
