JavaScript массивуудыг : үйл ажиллагааг багасгах ойлгох нь
Syntax
arr.reduce(callbackFunction, [initialValue])
Юу хийх явдал багассан байна вэ?
Бууруулах нь массив дамжуулан гарахгүй үйл ажиллагаа юм.
Үйл ажиллагаа нь дуудлага хүлээн авах үйл ажиллагаа дамжуулан массив дээр хийж болно.
массив дээр үйл ажиллагааны эцэст, Буцаах нь ганц утга бууруулах
Бууруулах ашиглаж болно, Жишээлбэл, худалдааны тэрэг нийт нь
Жишээ нь
бүү arr = [1,2,3,4,5];
arr.reduce( (аккумлятор, currentValue, currentIndex, массив) => {
//зарим үйл ажиллагаа;
ямар нэг зүйлийг буцаах;
});
Дуудлага хүлээн авах Чиг үүрэг
Дуудлага хүлээн авах үйл ажиллагаа массив дахь элемент тус бүрээр дуудаж байна, -д өнгөрч 4 багасгах функцээр онд батлагдсан байдаг нэмэлт өгөгдлүүд нь.
Эдгээр нь 4 нэмэлт өгөгдлүүд нь дараа нь манай дуудлага хүлээн авах үйл ажиллагааг ашиглаж болно.
дөрвөн нэмэлт өгөгдлийг авдаг бөгөөд
- аккумлятор – нийлүүлсэн бол эхлээд давталт буюу анхны утга дээр массивын эхний элемент. Өмнөх давталтын Дараа нь буцаах утга.
- currentValue – массив дахь одоогийн элемент. массив IE хоёр дахь элемент нь эхэлнэ. arr[1], эхний утга нь баталгаа гаргасан байх үед. эхний утга баталгаа гаргасан бол дараа нь өнөөгийн үнэ цэнэ нь массив arr 1-р элемент нь эхэлнэ[0].
- currentIndex – Одоогийн элементийн индекс.
- массив – бүхэлд нь массив.
ажлын жишээ
бүү arr = [1,2,3,4,5]; arr.reduce( (аккумлятор, currentValue, currentIndex, массив) => { console.log(`аккумлятор (1-р давталтын нд, аккумлятор arr байна[0], дараа нь энэ нь өмнөх давталтын буцаж утга юм): ${аккумлятор}`); console.log(`currentValue (массив дамжуулан гарахгүй, arr эхлэн[1]): ${currentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`массив: ${массив}`); console.log('---'); буцах аккумлятор + currentValue; } );
Гаралтын
аккумлятор (1-р давталтын нд, аккумлятор arr байна[0], дараа нь энэ нь өмнөх давталтын буцаж утга юм): 1 currentValue (массив дамжуулан гарахгүй, arr эхлэн[1]): 2 currentIndex: 1 массив: 1,2,3,4,5 --- аккумлятор (1-р давталтын нд, аккумлятор arr байна[0], дараа нь энэ нь өмнөх давталтын буцаж утга юм): 3 currentValue (массив дамжуулан гарахгүй, arr эхлэн[1]): 3 currentIndex: 2 массив: 1,2,3,4,5 --- аккумлятор (1-р давталтын нд, аккумлятор arr байна[0], дараа нь энэ нь өмнөх давталтын буцаж утга юм): 6 currentValue (массив дамжуулан гарахгүй, arr эхлэн[1]): 4 currentIndex: 3 массив: 1,2,3,4,5 --- аккумлятор (1-р давталтын нд, аккумлятор arr байна[0], дараа нь энэ нь өмнөх давталтын буцаж утга юм): 10 currentValue (массив дамжуулан гарахгүй, arr эхлэн[1]): 5 currentIndex: 4 массив: 1,2,3,4,5 ---
эхний утга өгөх
Хоёр дахь параметрийг тодорхойлох (initialValue) бууруулах үйл ажиллагаанд initialValue эхний давталт дээр аккумлятор нэмэлт өгөгдөл болгон онд батлагдсан хүргэнэ.
1-р давталт өнөөгийн үнэ цэнэ нь одоо массив эхний элемент эхэлдэг гэдгийг анхаарна уу
ажлын жишээ
бүү arr = [1,2,3,4,5]; arr.reduce( (аккумлятор, currentValue, currentIndex, массив) => { console.log(`аккумлятор ( 1-р давталтын нд, Энэ анхны утга нь, Өмнөх давталтын дараа нь буцаж үнэ цэнэ): ${аккумлятор}`); console.log(`currentValue (массив дамжуулан гарахгүй, arr эхлэн[0]): ${currentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`массив: ${массив}`); console.log('---'); буцах аккумлятор + currentValue; }, 0 );
Гаралтын
аккумлятор ( 1-р давталтын нд, Энэ анхны утга нь, Өмнөх давталтын дараа нь буцаж үнэ цэнэ): 0 currentValue (массив дамжуулан гарахгүй, arr эхлэн[0]): 1 currentIndex: 0 массив: 1,2,3,4,5 --- аккумлятор ( 1-р давталтын нд, Энэ анхны утга нь, Өмнөх давталтын дараа нь буцаж үнэ цэнэ): 1 currentValue (массив дамжуулан гарахгүй, arr эхлэн[0]): 2 currentIndex: 1 массив: 1,2,3,4,5 --- аккумлятор ( 1-р давталтын нд, Энэ анхны утга нь, Өмнөх давталтын дараа нь буцаж үнэ цэнэ): 3 currentValue (массив дамжуулан гарахгүй, arr эхлэн[0]): 3 currentIndex: 2 массив: 1,2,3,4,5 --- аккумлятор ( 1-р давталтын нд, Энэ анхны утга нь, Өмнөх давталтын дараа нь буцаж үнэ цэнэ): 6 currentValue (массив дамжуулан гарахгүй, arr эхлэн[0]): 4 currentIndex: 3 массив: 1,2,3,4,5 --- аккумлятор ( 1-р давталтын нд, Энэ анхны утга нь, Өмнөх давталтын дараа нь буцаж үнэ цэнэ): 10 currentValue (массив дамжуулан гарахгүй, arr эхлэн[0]): 5 currentIndex: 4 массив: 1,2,3,4,5 ---
