Π‘ΡΠΌΠΌΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° javascript: ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΠΌΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΡΠ΅Π»
Array.prototype.reduce() — JavaScript | MDN
ΠΠ΅ΡΠΎΠ΄ reduce()
ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ reducer ΠΊΒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡΒ ΠΌΠ°ΡΡΠΈΠ²Π° (ΡΠ»Π΅Π²Π°-Π½Π°ΠΏΡΠ°Π²ΠΎ), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
The source for this interactive example is stored in a GitHub repository. If you’d like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ https://github.com/mdn/interactive-examples ΠΈ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π½Π°ΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠ΅ΡΠ΅Π½ΠΎΡ.
array.reduce(callback[, initialValue])
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
callback
- Π€ΡΠ½ΠΊΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
accumulator
- ΠΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, Π°ΠΊΠΊΡΠΌΡΠ»ΠΈΡΡΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ callback ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
initialValue
, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ (ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ Π½ΠΈΠΆΠ΅). currentValue
- Π’Π΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°.
index
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ- ΠΠ½Π΄Π΅ΠΊΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°.
array
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ- ΠΠ°ΡΡΠΈΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ
reduce
.
initialValue
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ- ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ±ΡΠ΅ΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ
callback
.
ΠΠ΅ΡΠΎΠ΄ reduce()
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ callback
ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΡΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° callback
), Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ.
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ accumulator
ΠΈ currentValue
ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ reduce()
ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ initialValue
, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ accumulator
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ initialValue
, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ currentValue
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΡΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ initialValue
Π½Π΅ Π·Π°Π΄Π°Π½, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ accumulator
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΡΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ currentValue
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΡΠΌ Π²ΡΠΎΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΡΡΠΎΠΉ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ initialValue
Π½Π΅ ΡΠΊΠ°Π·Π°Π½, Π±ΡΠ΄Π΅Ρ Π±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ TypeError
. ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅) ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ initialValue
Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ initialValue
ΡΠΊΠ°Π·Π°Π½, Π½ΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΡΡΠΎΠΉ, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π±Π΅Π· Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ callback
.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ reduce()
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
return previousValue + currentValue;
});
ΠΠΎΠ»Π±ΡΠΊ-ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π°, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ Π±ΡΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ:
previousValue | currentValue | index | array | Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | |
---|---|---|---|---|---|
ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠ·ΠΎΠ² | 0 | 1 | 1 | [0, 1, 2, 3, 4] | 1 |
Π²ΡΠΎΡΠΎΠΉ Π²ΡΠ·ΠΎΠ² | 1 | 2 | 2 | [0, 1, 2, 3, 4] | 3 |
ΡΡΠ΅ΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² | 3 | 3 | 3 | [0, 1, 2, 3, 4] | 6 |
ΡΠ΅ΡΠ²ΡΡΡΡΠΉ Π²ΡΠ·ΠΎΠ² | 6 | 4 | 4 | [0, 1, 2, 3, 4] | 10 |
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΠΎΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ reduce()
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π±ΡΠΊ-ΡΡΠ½ΠΊΡΠΈΠΈ β 10
.
ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ Π·Π°Π΄Π°Π΄ΠΈΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ initialValue
, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, index, array) {
return accumulator + currentValue;
}, 10);
accumulator | currentValue | index | array | Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | |
---|---|---|---|---|---|
ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠ·ΠΎΠ² | 10 | 0 | 0 | [0, 1, 2, 3, 4] | 10 |
Π²ΡΠΎΡΠΎΠΉ Π²ΡΠ·ΠΎΠ² | 10 | 1 | 1 | [0, 1, 2, 3, 4] | 11 |
ΡΡΠ΅ΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² | 11 | 2 | 2 | [0, 1, 2, 3, 4] | 13 |
ΡΠ΅ΡΠ²ΡΡΡΡΠΉ Π²ΡΠ·ΠΎΠ² | 13 | 3 | 3 | [0, 1, 2, 3, 4] | 16 |
ΠΏΡΡΡΠΉ Π²ΡΠ·ΠΎΠ² | 16 | 4 | 4 | [0, 1, 2, 3, 4] | 20 |
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΠΎΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ reduce()
Π½Π° ΡΡΠΎΡ ΡΠ°Π·, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΡΠΌ 20
.
Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
var total = [0, 1, 2, 3].reduce(function(a, b) {
return a + b;
});
Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π§ΡΠΎΠ±Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ initialValue
, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΌΠΎΠ³ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· callback
.
var initialValue = 0;
var sum = [{x: 1}, {x:2}, {x:3}].reduce(function (accumulator, currentValue) {
return accumulator + currentValue.x;
}, initialValue)
Π’ΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΡΠΎ ΡΡΡΠ΅Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:Β
var initialValue = 0;
var sum = [{x: 1}, {x:2}, {x:3}].reduce(
(accumulator, currentValue) => accumulator + currentValue.x,
initialValue
);
Π Π°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
return a.concat(b);
});
ΠΡΠΈΠΌΠ΅Ρ: ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ initialValue
var friends = [
{ name: "Anna", books: ["Bible", "Harry Potter"], age: 21 },
{ name: "Bob", books: ["War and peace", "Romeo and Juliet"], age: 26 },
{ name: "Alice", books: ["The Lord of the Rings", "The Shining"], age: 18 }
]
var allbooks = friends.reduce(function(prev, curr) {
return [...prev, ...curr.books];
}, ["Alphabet"]);
ΠΠ΅ΡΠΎΠ΄ Array.prototype.reduce()
Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΡ ECMA-262 Π² 5-ΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ; ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² Π½Π°ΡΠ°Π»ΠΎ Π²Π°ΡΠΈΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ reduce()
Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄.
if (!Array.prototype.reduce) {
Array.prototype.reduce = function(callback) {
'use strict';
if (this == null) {
throw new TypeError('Array.prototype.reduce called on null or undefined');
}
if (typeof callback !== 'function') {
throw new TypeError(callback + ' is not a function');
}
var t = Object(this), len = t.length >>> 0, k = 0, value;
if (arguments.length >= 2) {
value = arguments[1];
} else {
while (k < len && ! (k in t)) {
k++;
}
if (k >= len) {
throw new TypeError('Reduce of empty array with no initial value');
}
value = t[k++];
}
for (; k < len; k++) {
if (k in t) {
value = callback(value, t[k], k, t);
}
}
return value;
};
}
BCD tables only load in the browser
Javascript Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΡΠΎ
1) Π‘ΠΎΡΡΠ°Π²ΠΈΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠ΅ΡΠ°ΡΠ°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true,
Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΠΈ false β
Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠ°Π΄Π°ΡΠ°:
Π‘ΡΠΌΠΌΠ° ΡΠΈΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΠ΅Ρ Π·Π½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° N ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΒ
Π΄ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΡΠ»Π° Π½Π° 1.
2) Π’Π΅ΠΊΡΡΡΠΎΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ°
ΠΠ° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ .ΠΠΠΠ·Π°Π΄Π°Π½Π° ΡΠ²ΠΎΠΈΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΡΠΎΡΠΊΠ° Π. Π£ΠΊΠ°Β
Π·Π°ΡΡ, Π³Π΄Π΅ ΠΎΠ½Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° (Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΠΈ ΠΈΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΒ
Π½ΠΎΠΌ ΡΠ³Π»Π΅) .
3) ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅Β
Π³ΠΎ ΠΈΠ· ΡΡΠ΅Ρ ΡΠΈΡΠ΅Π».
4) ΠΠ°Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ Β«ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ±ΠΎΡΠ°Β»
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ Π΄Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ (ΡΠ΅Π»ΠΎΠΌΡ
ΡΠΈΡΠ»Ρ ΠΎΡ 1 Π΄ΠΎ 7) Π²ΡΠ΄Π°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠΊΠΎΠ² Π²
Π²Π°ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π² ΡΡΠΎΡ Π΄Π΅Π½Ρ.
5) ΠΠΎΠΊΠ°Π·Π°ΡΡ (ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) , ΡΡΠΎ Π΄Π»Ρ Π»ΡΠ±ΡΡ
Π²Π΅Π»ΠΈΡΠΈΠ½ Π, Π, Π‘ ΡΠΈΠΏΠ° Boolean ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°Β
ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ) :
Π°) A OR Π² ΠΈ Π² OR Π;
Π±) A AND ΠΠ Π AND A;
Π) (A OR Π) OR Π‘ Π A OR Π‘;
Π) (A AND Π) AND Π‘ Π A AND (Π AND Π‘) ;
Π) A AND (A OR Π) Π Π;
Π΅) A OR (A AND Π) Π Π;
Π) A AND (Π OR.Π‘) Π (A AND Π) OR (A AND Π‘) ;
3) A OR (Π AND Π‘) Π (A OR Π) AND (A OR Π‘)
6) ΠΠ°Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ Β«Π¦Π΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ°Β»
ΠΠ°Π½ΠΎ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π». ΠΠ°ΠΉΡΠΈ ΡΡΠΌΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ
ΡΠΈΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°.
7) ΠΠ°Π½ΠΎ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ N. ΠΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π, ΠΊΠΎΡΠΎΒ
ΡΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΈΠ· ΡΠΈΡΠ»Π° N ΠΏΡΡΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΡ Π½Π°
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΡΡ Π² Π·Π°ΠΏΠΈΡΠΈ ΡΠΈΡΠ»Π° N. ΠΡΠΈΠΌΠ΅Ρ. N= 128 452,
Π= 128 458
8) Π‘ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈΠ· Π΄Π΅ΡΡΒ
ΡΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΡΡ.
9) ΠΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ°Π΄Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ TV ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠΌΠΌΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΡΠΎ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
10) ΠΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ°Π½ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΠ°ΠΉΡΠΈ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΒ
Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π. ΠΠΎΠ»ΡΡΠΈΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅
Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° (ΠΎΡ; Π/), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅
Π²Ρ ΠΎΠ΄ΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
11) ΠΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ°Π½ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π [ΠΏ] , ΡΡΠ΅Π΄ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΅ΡΡΡ ΠΎΠ΄ΠΈΒ
Π½Π°ΠΊΠΎΠ²ΡΠ΅. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π [ΠΏ] .
12) ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
ΠΌΠ°ΡΡΠΈΡΡ Π [Π, N].
[ ΠΠ°Π΄Π°ΡΠ° JavaScript ]: ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠΈΠΊΠ»Ρ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈΒ Π±ΡΠ΄ΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Ρ,Β ΡΠΈΠΊΠ»Ρ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π»Β ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°Π΄Π°ΡΠ°
- Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΠΊΠ° ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ β ΡΡΠΎ ΠΎΡΠ΅Π½ΠΊΠ°Β ΠΎΡ 2 Π΄ΠΎ 5.
ΠΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌ Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½ΠΈΠΊΡ: ΠΎΡΠ»ΠΈΡΠ½ΠΈΠΊ, Ρ ΠΎΡΠΎΡΠΈΡΡ, ΡΡΠΎΠ΅ΡΠ½ΠΈΠΊ, Π΄Π²ΠΎΠ΅ΡΠ½ΠΈΠΊ. - ΠΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΎΡΠ΅Π½ΠΊΠ°ΠΌΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π».
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΅Π½ΠΎΠΊ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π» ΡΡΠ΅Π½ΠΈΠΊ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π±Π°Π»Π»Ρ ΠΈΒ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΡΠ΅Π½ΠΈΠΊΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠ΅Π΄Π½ΠΈΠΉ Π±Π°Π»Π» ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½ΠΈΠΊΡ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠΌ ΠΎΡΠ΅Π½ΠΎΠΊ var n = 20; Β // ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΡΠ΅Π½ΠΈΠΊΠ° var scores = []; Β // ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π½ΠΈΠΊ var min = 2; Β // ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π½ΠΈΠΊ var max = 5; Β // ΡΡΠ΅Π΄Π½ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠ΅Π½ΠΊΠ° ΡΡΠ΅Π½ΠΈΠΊΠ° var sum = 0; Β // ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½ΠΈΠΊΠ° var who = »; |
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠΈΠΊΠ» Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠ΅Π½ΠΊΠ° ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ², ΡΠΈΠΊΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡΡΡ n ΡΠ°Π·, ΡΡΠΎΠ±Ρ Π½Π°Π±ΡΠ°Π»ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π½Π΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΅Π½ΠΎΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅:
// ΡΠΈΠΊΠ» ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΎΡΠ΅Π½ΠΎΠΊ for ( var i = 0; i < n; i++ ) { Β // ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ±ΠΎΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΎΡ min Π΄ΠΎ max ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ Π² ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΎΠΊ scores[ i ] = Math. floor( Math.random() * (max — min + 1) ) + min; Β // ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΎΠΊ sum += scores[ i ]; } |
Π’Π°ΠΊΠΆΠ΅ Π² ΡΠΈΠΊΠ»Π΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΠΎΡΠ΅Π½ΠΊΠ°ΠΌΠΈ:
Π ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠΌΠΌΠ΅ Π±Π°Π»Π»ΠΎΠ² ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ Π±Π°Π»Π», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΡΡΠΎΠΊΠΎΠΉ Π²ΡΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ i-ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΡΡΠΎ ΠΌΡ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ.
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΡΠΌΠΌΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ sum
Β ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΅Π½ΠΎΠΊ Π² ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ·Π½Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ .length
, Π½ΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΠ°ΠΌΠΈ Π·Π°Π΄Π°Π²Π°Π»ΠΈΒ ΡΠ°Π·ΠΌΠ΅Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ n
Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° n
, Π° Π·Π° ΡΠ΅ΠΌ ΠΎΠΊΡΡΠ³Π»ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
sum = Math.round( sum / n ); |
ΠΠΎΡΠ»Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡΒ Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½ΠΈΠΊΡ:
switch ( sum ) { case 5: who = ‘ΠΎΡΠ»ΠΈΡΠ½ΠΈΠΊ’; break; case 4: who = ‘Ρ ΠΎΡΠΎΡΠΈΡΡ’; break; case 3: who = ‘ΡΡΠΎΠ΅ΡΠ½ΠΈΠΊ’; break; case 2: who = ‘Π΄Π²ΠΎΠ΅ΡΠ½ΠΈΠΊ’; break; default: who = ‘Π½Π΅ ΡΡΠ½ΠΎ ΠΊΡΠΎ’; } |
β¦ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
// Π²ΡΠ²ΠΎΠ΄ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ console.log( ‘ΠΡΠ΅Π½ΠΊΠΈ: ‘ + scores ); console.log( ‘Π‘ΡΠ΅Π΄Π½ΡΡ ΠΎΡΠ΅Π½ΠΊΠ° — ‘ + sum ); console.log( ‘Π£ΡΠ΅Π½ΠΈΠΊ — ‘ + who ); |
ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ Π·Π°Π΄Π°ΡΠΈ
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π·Π°Π΄Π°Π½ΠΈΡ Π΄ΠΎ ΡΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π² ΡΠ΅Π±Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΅Π½ΠΎΠΊ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½ΠΎΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Ρ ΡΠ°Π½ΡΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΡ ΡΡΠ»ΠΎΠ²ΠΈΠΌΡΡ, ΡΡΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉΒ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π²ΠΎΠ΅ΠΊ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠΌ, ΠΏΠ΅ΡΠ²ΡΠΉ β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ΅ΠΊ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ Π΅ΡΠ΅ Π½Π΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠ΅Π½ΠΎΠΊ ΡΡΠ΅Π½ΠΈΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΅Π½ΠΎΠΊ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ:
var most = [ 0, 0, 0, 0 ]; |
ΠΠ½ΡΡΡΠΈΒ ΡΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΡΠ΅Π½ΠΎΠΊ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° switch:
switch ( scores[ i ] ) { case 5: most[ 3 ]++; break; case 4: most[ 2 ]++; break; case 3: most[ 1 ]++; break; case 2: most[ 0 ]++; break; } |
ΠΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΡΠ°ΡΠΈΠΎΠ½Π°Π»Π΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π±Π°Π»Π» ΡΠ²Π΅Π»ΠΈΡΠΈΡΡΡ Ρ ΠΏΡΡΠ΅ΡΠΊΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ Π΄ΠΎ 100, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅:
// ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»-Π²Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΎΠΊ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΎΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΡΠΌΡΠ»Π΅ score — min most[ scores[ i ] — min ]++; |
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π΄ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ: scores[ i ] - min
scores[ i ]
βΒ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 5, Π° min
β ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ°, ΡΠ°Π²Π½Π°Ρ 2. ΠΡΠ»ΠΈ Π²ΡΡΠ΅ΡΡΡ ΠΈΠ· ΠΏΡΡΠΈ Π΄Π²Π°, ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΡΠΈ, 3 β ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ most
, ΠΊΠΎΡΠΎΡΡΠΉ Ρ
ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΠ΅ΡΠΎΠΊ ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ.
ΠΠΎΡΠ»Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΎΡΠ΅Π½ΠΎΠΊ:
// ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠ°Π²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠ΅ i = max; Β // ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΠΎΡΠ΅Π½ΠΊΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π±ΠΎΠ»ΡΡΠ΅ min while ( i >= min ) { Β // Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠ»-Π²Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ console.log( ‘ΠΠΎΠ»-Π²ΠΎ ‘ + i + ‘-ΠΊ: ‘ + most[ i — 2 ] ); Β // Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΡΡΠ΅ΡΡΠΈΠΊΠ° i—; } |
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°
ΠΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ JavaScript: Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° | ΠΡΠΈΡ ΠΡΡΠ³ΠΈΠ½
Π‘Π΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Javascript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΠΌΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ·Π½Π°Π΅ΡΠ΅. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Javascript, ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅Π΄ΠΎΡΠΌΠ΅Π½ΠΈΠ΅.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±
var numbers = [10, 20, 30, 40] // ΡΡΠΌΠΌΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ 100
var sum = 0; for (var i = 0; isum + = numbers [i]
}
Π The Standard Way ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sum
ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠΊΠ» for
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΡΠ΅Π»
ΠΈ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΌΠΌΡ
. ΠΡΠΎΡΡΠΎΠ΅, Π½ΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ
Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΡΠΈΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π²Π½ΠΎΡΠΈΠΌ ΠΌΡΡΠ°ΡΠΈΡ Π² Π½Π°Ρ ΠΊΠΎΠ΄. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sum
, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.ΠΡΠΎ ΠΏΠ»ΠΎΡ
ΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ, ΡΠ΅ΠΌ ΠΊΠΎΠ΄, ΠΈΠ·Π±Π΅Π³Π°ΡΡΠΈΠΉ ΠΌΡΡΠ°ΡΠΈΠΉ.
The Rewritten Way
Π ΡΡΠ°ΡΡΡΡ, Javascript ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΏΠΎΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡ Π½ΠΈΠΆΠ΅. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ .
const numbers = [10, 20, 30, 40] // ΡΡΠΌΠΌΠ° Π΄ΠΎ 100 // ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π». ΠΠ΅Π³ΠΊΠΈΠΉ!
const add = (a, b) =>
a + b
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΈΡΠ»Π° Ρ var
Π½Π° const
.ΠΡ Ρ
ΠΎΡΠΈΠΌ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΠΈΡΠ»Π° ΠΏΠΎΡΡΠΎΡΠ½Π½Ρ; ΡΡΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ const ΠΈ let, ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ°ΡΡΡ Mozilla.
ΠΠ°Π»Π΅Π΅ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ add
. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΡΡΠΎ Π±Π΅ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΡΠ»Π° ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΈΡ
. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΡΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ MDN, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΡΡΠ΅Π»ΠΎΠΊ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ².
const numbers = [10, 20, 30, 40] // ΡΡΠΌΠΌΠ° Π΄ΠΎ 100 // ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π».ΠΠ΅Π³ΠΊΠΈΠΉ!
const add = (a, b) =>
a + b // ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
const sum = numbers. reduce (add)
ΠΠ΄Π½Π° ΡΡΡΠΎΠΊΠ°, ΠΈ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ. Π Π°Π±ΠΎΡΠ°Ρ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sum
ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΌΡ Π½Π΅ Ρ
ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ»Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ Π±Ρ ΠΊ ΠΌΡΡΠ°ΡΠΈΠΈ.
ΠΠ°Π»Π΅Π΅ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ reduce
Π΄Π»Ρ ΡΠΈΡΠ΅Π» ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sum
, ΡΡΡΡΠ°Π½ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΌΡΡΠ°ΡΠΈΠΈ.ΠΠ΅ΡΠΎΠ΄ reduce ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 4 Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π°. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ.
-
Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
— Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ. -
currentValue
— Π’Π΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ
, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ°
ΠΈ currentValue
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² a
ΠΈ b
Π² Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΠ½ΠΎΡΡΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠ²Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ: Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅: Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ = 10
ΠΈ currentValue = 20
, ΡΠ»ΠΎΠΆΠΈΠ² Π²ΠΌΠ΅ΡΡΠ΅, ΠΌΡ Π²Π΅ΡΠ½Π΅ΠΌ 30
.
ΠΡΠΎΡΠ°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ: ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅: Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ = 30
ΠΈ currentValue = 30
, ΡΠ»ΠΎΠΆΠΈΠ² Π²ΠΌΠ΅ΡΡΠ΅, ΠΌΡ Π²Π΅ΡΠ½Π΅ΠΌ 60
.
Π’ΡΠ΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ: Π ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅: Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ = 60
ΠΈ currentValue = 40
ΡΠ»ΠΎΠΆΠΈΠ² Π²ΠΌΠ΅ΡΡΠ΅, ΠΌΡ Π²Π΅ΡΠ½Π΅ΠΌ 100
.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ
ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ
— ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π΅Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ ΡΠΎ ΡΡΠ°ΡΡΠ΅ΠΉ MDN ΠΎ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°Ρ
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π― Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²Π°ΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅.
The Wrap
ΠΠ°ΠΌΠ΅Π½ΠΈΠ² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠΊΠ» Π½Π° reduce, ΠΌΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΌΡΡΠ°ΡΠΈΡ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΡΠΌ ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠΈΠ½Π΅ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠΎΠ»ΡΠ·Ρ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΠΌΠ°Ρ ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ Javascript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ². Π ΠΏΠΎΠΊΠ° Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΠΌ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ΅ΠΌΠ°ΠΌ.
ΠΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅
Array.prototype.reduce () — JavaScript | MDN
ΠΠ΅ΡΠΎΠ΄ reduce ()
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅Π΄ΡΠΊΡΠΎΡ
ΡΡΠ½ΠΊΡΠΈΡ (ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅) Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ Π²ΡΡ
ΠΎΠ΄Ρ
ΡΠ΅Π½ΠΈΡΡ.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ https://github.com/mdn/interactive-examples ΠΈ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π½Π°ΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠ΅ΡΠ΅Π½ΠΎΡ.
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
- ΠΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
- Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- Π’Π΅ΠΊΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ
- ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
ΠΠ°Ρ ΡΠ΅Π΄ΡΠΊΡΠΎΡ ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΡ,
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΈ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅
ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
arr.reduce (callback (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue, [, index [, array]]) [, initialValue])
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
-
callback
Π€ΡΠ½ΠΊΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ (ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ
ΠΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡinitialValue
).Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
-
Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
- ΠΠ°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ . ΠΡΠΎ
Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π½Π΅Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΠΈΠ»ΠΈ
initialValue
, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ (ΡΠΌ. ΠΠΈΠΆΠ΅). -
ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- Π’Π΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
-
ΠΈΠ½Π΄Π΅ΠΊΡ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ - ΠΠ½Π΄Π΅ΠΊΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠ°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
0
, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅initialValue
. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ
ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ°1
. -
ΠΌΠ°ΡΡΠΈΠ²
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ - ΠΡΠ» Π²ΡΠ·Π²Π°Π½ ΠΌΠ°ΡΡΠΈΠ²
reduce ()
.
-
-
Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ - ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅
ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ
.ΠΡΠ»ΠΈ Π½Π΅ΡΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½, ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ
Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠΏΡΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ
ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
. ΠΡΠ·ΠΎΠ²reduce ()
Π΄Π»Ρ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
Π±Π΅Π·initialValue
Π²ΡΠ·ΠΎΠ²Π΅ΡTypeError
.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠΎΠ΄ reduce ()
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ²
ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ
ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠ΅Π΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
-
Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
-
ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
-
ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΠ½Π΄Π΅ΠΊΡ
-
ΠΌΠ°ΡΡΠΈΠ²
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
ΠΈ
currentValue
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ
initialValue
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ reduce ()
,
ΡΠΎΠ³Π΄Π° Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½
initialValue
, Π° currentValue
Π±ΡΠ΄Π΅Ρ
ΡΠ°Π²Π½ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠ»ΠΈ Π½Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²
ΠΌΠ°ΡΡΠΈΠ², Π° currentValue
Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ Π²ΡΠΎΡΠΎΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ initialValue
Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ,
reduce ()
Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°
1
, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡΠ»ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΡΠ°Π²Π½ΠΎ
ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΎΠ½ Π½Π°ΡΠ½Π΅ΡΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° 0
.
ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΡΡ ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ initialValue
,
TypeError
Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ.
ΠΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ) ΠΈ Π½Π΅Ρ
initialValue
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ
initialValue
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ, Π½ΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΠΎ
Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ Π±Π΅Π· Π·Π²ΠΎΠ½ΠΊΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°
.
ΠΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎ ΡΠ΅ΡΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΡΠΈΠΏΠ° Π²ΡΠ²ΠΎΠ΄Π° Π±Π΅Π·
initialValue
, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
let maxCallback = (acc, cur) => Math.max (acc.x, cur.x);
ΠΏΡΡΡΡ maxCallback2 = (max, cur) => Math.max (max, cur);
[{x: 2}, {x: 22}, {x: 42}] .reduce (maxCallback);
[{x: 2}, {x: 22}].ΡΠΌΠ΅Π½ΡΡΠΈΡΡ (maxCallback);
[{x: 2}] .reduce (maxCallback);
[] .reduce (maxCallback);
[{x: 22}, {x: 42}] .map (el => el.x)
.reduce (maxCallback2, -ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ);
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ reduce ()
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ reduce ()
:
[0, 1, 2, 3, 4] . reduce (function (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue, currentIndex, array) {
Π²Π΅ΡΠ½ΡΡΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ + currentValue
})
ΠΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π° Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ
Π·Π²ΠΎΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π½ΠΎΠΌΠ΅ΡΡ:
ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΈΡΠ΅ΡΠ°ΡΠΈΡ | Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ | ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΠ½Π΄Π΅ΠΊΡ | ΠΌΠ°ΡΡΠΈΠ² | Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
---|---|---|---|---|---|
ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 0 | 1 | 1 | [0, 1, 2, 3, 4] | 1 |
Π²ΡΠΎΡΠΎΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 1 | 2 | 2 | [0, 1, 2, 3, 4] | 3 |
ΡΡΠ΅ΡΠΈΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 3 | 3 | 3 | [0, 1, 2, 3, 4] | 6 |
ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 6 | 4 | 4 | [0, 1, 2, 3, 4] | 10 |
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ reduce ()
, Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
Π²ΡΠ·ΠΎΠ² ( 10
).
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ΅Π»ΠΊΠΈ
Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π΄Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΡΠΎ ΠΈ ΠΊΠΎΠ΄ Π²
Π±Π»ΠΎΠΊ Π²ΡΡΠ΅:
[0, 1, 2, 3, 4] . reduce ((Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue, currentIndex, array) => Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ + currentValue)
ΠΡΠ»ΠΈ Π±Ρ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ initialValue
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
Π΄ΠΎ reduce ()
, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
[0, 1, 2, 3, 4].reduce ((Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue, currentIndex, array) => {
Π²Π΅ΡΠ½ΡΡΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ + currentValue
}, 10)
ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΈΡΠ΅ΡΠ°ΡΠΈΡ | Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ | ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΠ½Π΄Π΅ΠΊΡ | ΠΌΠ°ΡΡΠΈΠ² | Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
---|---|---|---|---|---|
ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 10 | 0 | 0 | [0, 1, 2, 3, 4] | 10 |
Π²ΡΠΎΡΠΎΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 10 | 1 | 1 | [0, 1, 2, 3, 4] | 11 |
ΡΡΠ΅ΡΠΈΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 11 | 2 | 2 | [0, 1, 2, 3, 4] | 13 |
ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 13 | 3 | 3 | [0, 1, 2, 3, 4] | 16 |
ΠΏΡΡΡΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ | 16 | 4 | 4 | [0, 1, 2, 3, 4] | 20 |
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ reduce ()
, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ 20
.
if (! Array.prototype.reduce) {
Object.defineProperty (Array.prototype, 'ΡΠΌΠ΅Π½ΡΡΠΈΡΡ', {
value: function (callback) {
if (this === null) {
throw new TypeError ('Array.prototype.reduce' +
'Π²ΡΠ·Π²Π°Π½ΠΎ ΠΏΠΎ null ΠΈΠ»ΠΈ undefined');
}
if (typeof callback! == 'ΡΡΠ½ΠΊΡΠΈΡ') {
Π²ΡΠ±ΡΠΎΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ TypeError (ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² +
'Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡ');
}
var o = Object (ΡΡΠΎ);
var len = o.length >>> 0;
var k = 0;
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ var;
Π΅ΡΠ»ΠΈ (Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.length> = 2) {
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ [1];
} Π΅ΡΠ΅ {
while (k = len) {
throw new TypeError ('Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°' +
'Π±Π΅Π· Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ');
}
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = o [k ++];
}
Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ (k
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
Π΄Π²ΠΈΠΆΠΊΠΎΠ² JavaScript
ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ .defineProperty ()
, Π»ΡΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠ»
Array.prototype
ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΠΎΠΎΠ±ΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ
ΡΠ΄Π΅Π»Π°ΡΡ
Π½Π΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΉ .
Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°
let sum = [0, 1, 2, 3] .reduce (function (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue) {
Π²Π΅ΡΠ½ΡΡΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ + currentValue
}, 0)
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ:
let total = [0, 1, 2, 3] .reduce (
(Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) => Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ + ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅,
0
)
Π‘ΡΠΌΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π§ΡΠΎΠ±Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ
initialValue
, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠ» ΡΠ΅ΡΠ΅Π· Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΏΡΡΡΡ initialValue = 0
let sum = [{x: 1}, {x: 2}, {x: 3}]. reduce (function (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue) {
Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ + currentValue.x
}, ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
console.log (ΡΡΠΌΠΌΠ°)
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ:
ΠΏΡΡΡΡ initialValue = 0
let sum = [{x: 1}, {x: 2}, {x: 3}]. reduce (
(Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue) => Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ + currentValue.x
, ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
)
console.log (ΡΡΠΌΠΌΠ°)
Π‘Π³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
let flattened = [[0, 1], [2, 3], [4, 5]].ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ(
function (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue) {
Π²Π΅ΡΠ½ΡΡΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ .concat (currentValue)
},
[]
)
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ:
let flattened = [[0, 1], [2, 3], [4, 5]]. Reduce (
(Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) => Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ.concat (ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅),
[]
)
ΠΠΎΠ΄ΡΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²
ΠΎΠ±ΡΠ΅ΠΊΡ
let names = ['ΠΠ»ΠΈΡΠ°', 'ΠΠΎΠ±', 'Π’ΠΈΡΡ', 'ΠΡΡΡ', 'ΠΠ»ΠΈΡΠ°']
let counttedNames = names.reduce (function (allNames, name) {
if (ΠΈΠΌΡ Π² allNames) {
allNames [ΠΈΠΌΡ] ++
}
Π΅ΡΠ΅ {
allNames [ΠΈΠΌΡ] = 1
}
Π²Π΅ΡΠ½ΡΡΡ allNames
}, {})
ΠΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ
let people = [
{ΠΈΠΌΡ: 'ΠΠ»ΠΈΡΠ°', Π²ΠΎΠ·ΡΠ°ΡΡ: 21},
{ΠΈΠΌΡ: 'ΠΠ°ΠΊΡ', Π²ΠΎΠ·ΡΠ°ΡΡ: 20},
{ΠΈΠΌΡ: 'ΠΠΆΠ΅ΠΉΠ½', Π²ΠΎΠ·ΡΠ°ΡΡ: 20}
];
function groupBy (objectArray, property) {
Π²Π΅ΡΠ½ΡΡΡ objectArray.reduce (function (acc, obj) {
let key = obj [ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ]
if (! acc [ΠΊΠ»ΡΡ]) {
acc [ΠΊΠ»ΡΡ] = []
}
acc [ΠΊΠ»ΡΡ] .push (ΠΎΠ±ΡΠ΅ΠΊΡ)
Π²ΠΎΠ·Π²ΡΠ°Ρ Π² ΡΠΎΠΎΡΠ².
}, {})
}
let groupedPeople = groupBy (Π»ΡΠ΄ΠΈ, 'Π²ΠΎΠ·ΡΠ°ΡΡ')
Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ
initialValue
ΠΏΡΡΡΡ Π΄ΡΡΠ·ΡΡ = [{
ΠΈΠΌΡ: 'ΠΠ½Π½Π°',
ΠΊΠ½ΠΈΠ³ΠΈ: ['ΠΠΈΠ±Π»ΠΈΡ', 'ΠΠ°ΡΡΠΈ ΠΠΎΡΡΠ΅Ρ'],
Π²ΠΎΠ·ΡΠ°ΡΡ: 21
}, {
ΠΈΠΌΡ: 'ΠΠΎΠ±',
ΠΊΠ½ΠΈΠ³ΠΈ: [Β«ΠΠΎΠΉΠ½Π° ΠΈ ΠΌΠΈΡΒ», Β«Π ΠΎΠΌΠ΅ΠΎ ΠΈ ΠΠΆΡΠ»ΡΠ΅ΡΡΠ°Β»],
Π²ΠΎΠ·ΡΠ°ΡΡ: 26
}, {
ΠΈΠΌΡ: 'ΠΠ»ΠΈΡΠ°',
ΠΊΠ½ΠΈΠ³ΠΈ: [Β«ΠΠ»Π°ΡΡΠ΅Π»ΠΈΠ½ ΠΊΠΎΠ»Π΅ΡΒ», Β«Π‘ΠΈΡΠ½ΠΈΠ΅Β»],
Π²ΠΎΠ·ΡΠ°ΡΡ: 18
}]
ΠΏΡΡΡΡ allbooks = Π΄ΡΡΠ·ΡΡ. ΡΠΌΠ΅Π½ΡΡΠΈΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) {
return [... Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, ... currentValue.books]
}, ['Alphabet'])
Π£Π΄Π°Π»ΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠ΅Π΄Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅
ΠΈ Array.from ()
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
let ordersArray = Array.from (new Set (myArray))
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΌ
ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ.
let myArray = ['a', 'b', 'a', 'b', 'c', 'e', ββ'e', ββ'c', 'd', 'd', 'd', 'd']
ΠΏΡΡΡΡ myOrderedArray = myArray.ΡΠΌΠ΅Π½ΡΡΠΈΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) {
if (Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ.indexOf (currentValue) === -1) {
Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ.push (currentValue)
}
Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
}, [])
console.log (myOrderedArray)
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ .filter (). map () Π½Π° .reduce ()
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Array.filter ()
, Π·Π°ΡΠ΅ΠΌ Array.map ()
ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ²
Π΄Π²Π°ΠΆΠ΄Ρ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠ°, ΠΏΡΠΎΡ
ΠΎΠ΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Ρ ΠΏΠΎΠΌΠΎΡΡΡ
Array.reduce ()
, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ. (ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΡΡΡΡ ΠΏΠ΅ΡΠ»ΠΈ for, Π²Ρ
ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° .forEach ()
).
ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΡΠΈΡΠ»Π° = [-5, 6, 2, 0,];
const doubledPositiveNumbers = numbers.reduce ((Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ, currentValue) => {
if (currentValue> 0) {
const doubled = currentValue * 2;
Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ.ΠΏΡΡ (ΡΠ΄Π²ΠΎΠ΅Π½Π½ΡΠΉ);
}
Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΡΠΉ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ;
}, []);
console.log (doubledPositiveNumbers);
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
function runPromiseInSequence (arr, input) {
Π²Π΅ΡΠ½ΡΡΡ arr.reduce (
(ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ, ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ) => ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ.Π·Π°ΡΠ΅ΠΌ (currentFunction),
Promise.resolve (Π²Π²ΠΎΠ΄)
)
}
ΡΡΠ½ΠΊΡΠΈΡ p1 (a) {
Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ ((ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ, ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡΡ) => {
ΡΠ΅ΡΠΈΡΡ (a * 5)
})
}
ΡΡΠ½ΠΊΡΠΈΡ p2 (a) {
Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ ((ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ, ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡΡ) => {
ΡΠ΅ΡΠΈΡΡ (a * 2)
})
}
ΡΡΠ½ΠΊΡΠΈΡ f3 (a) {
Π²Π΅ΡΠ½ΡΡΡ * 3
}
ΡΡΠ½ΠΊΡΠΈΡ p4 (a) {
Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ ((ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ, ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡΡ) => {
ΡΠ΅ΡΠΈΡΡ (a * 4)
})
}
const PromiseArr = [p1, p2, f3, p4]
runPromiseInSequence (PromiseArr, 10)
. then (console.log)
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄
const double = Ρ
=> Ρ
+ Ρ
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΡΡΠΎΠΉΠΊΠ° = Ρ
=> 3 * Ρ
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΡΠ΅ΡΠ²Π΅ΡΠΊΠ° = Ρ
=> 4 * Ρ
const pipe = (...functions) => input => functions.reduce (
(acc, fn) => fn (acc),
ΠΡ
ΠΎΠ΄
)
const multiply6 = ΡΡΡΠ±Π° (Π΄Π²ΠΎΠΉΠ½Π°Ρ, ΡΡΠΎΠΉΠ½Π°Ρ)
const multiply9 = ΡΡΡΠ±Π° (ΡΡΠΎΠΉΠΊΠ°, ΡΡΠΎΠΉΠΊΠ°)
const multiply16 = ΡΡΡΠ±Π° (ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ, ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ)
const multiply24 = ΡΡΡΠ±Π° (Π΄Π²ΠΎΠΉΠ½Π°Ρ, ΡΡΠΎΠΉΠ½Π°Ρ, ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ)
ΡΠΌΠ½ΠΎΠΆΠΈΡΡ6 (6)
ΡΠΌΠ½ΠΎΠΆΠΈΡΡ9 (9)
ΡΠΌΠ½ΠΎΠΆΠΈΡΡ16 (16)
ΡΠΌΠ½ΠΎΠΆΠΈΡΡ24 (10)
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅
if (! Array.prototype.mapUsingReduce) {
Array.prototype.mapUsingReduce = function (callback, thisArg) {
Π²Π΅ΡΠ½ΠΈ ΡΡΠΎ.ΡΠΌΠ΅Π½ΡΡΠΈΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (mappedArray, currentValue, index, array) {
mappedArray [ΠΈΠ½Π΄Π΅ΠΊΡ] = callback.call (thisArg, currentValue, ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΌΠ°ΡΡΠΈΠ²)
Π²Π΅ΡΠ½ΡΡΡ mappedArray
}, [])
}
}
[1, 2,, 3] .mapUsingReduce (
(currentValue, index, array) => currentValue + index + array.length (ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΌΠ°ΡΡΠΈΠ²) => currentValue + index + array.length
)
Π’Π°Π±Π»ΠΈΡΡ BCD Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Array.reduce Π΄Π»Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Β· GitHub
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Array.reduce Π΄Π»Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Β· GitHub
ΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΊΠΎΠ΄ΠΎΠΌ, Π·Π°ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Array.reduce Π΄Π»Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
var accounts = [ | |
{ΠΈΠΌΡ: 'ΠΠΆΠ΅ΠΉΠΌΡ ΠΡΠ°ΡΠ½', msgCount: 123}, | |
{ΠΈΠΌΡ: 'Π‘ΡΠΈΠ²ΠΈ Π£Π°Π½Π΄Π΅Ρ', msgCount: 22}, | |
{ΠΈΠΌΡ: 'Π₯ΠΈΡΡΡΠΉ ΠΊΠ°ΠΌΠ΅Π½Ρ', msgCount: 16}, | |
{name: 'Otis Redding', msgCount: 300} // Π£ ΠΡΠΈΡΠ° Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ | |
]; | |
// ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠΌΠΌΡ msgCount prop ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ | |
var msgTotal = accounts. ΡΠΌΠ΅Π½ΡΡΠΈΡΡ (ΡΡΠ½ΠΊΡΠΈΡ (ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ, ΡΠ΅ΠΊΡΡΠ°Ρ) { | |
return prev + cur.msgCount; | |
}, 0); | |
console.log ('ΠΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:', msgTotal); // ΠΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ: 461 |
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.
ΠΡ Π²ΠΎΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎΠΌ.ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π°Π½Ρ.
ΠΡ Π²ΡΡΠ»ΠΈ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΎΠΊΠ½Π΅. ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π°Π½Ρ.
ΡΡΠΌΠΌΠ° ΡΠΈΡΠ΅Π» Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΠ»Π° for Π² javascript
ΠΡΠΈΠΌΠ΅Ρ 2: Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ array reduce () Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ. ΠΠ°ΠΊ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ XOR ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Javascript, ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅Π΄ΠΎΡΠΌΠ΅Π½ΠΈΠ΅.Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΡΠΌΠΌΡ Π΄Π²ΡΡ
ΡΠΈΡΠ΅Π» Π² Javascript, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ array.reduce (). Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΈΠΏ N ΠΊ float, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ reduce Π΄Π»Ρ ΡΠΈΡΠ΅Π» ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠΌΠΌΡ, ΡΡΡΡΠ°Π½ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΌΡΡΠ°ΡΠΈΠΈ. Π¦ΠΈΠΊΠ» while ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π». ΠΠΎΠΏΡΠΎΡ / Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ addNeighbors, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΡΠ΅Π» ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΊ ΡΠΈΡΠ»Ρ ΡΡΠ΄ΠΎΠΌ Ρ Π½ΠΈΠΌ.ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» for Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΡΠ΅Ρ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π½Π°ΠΉΠ΄Π΅ΠΌ ΡΡΠΌΠΌΡ n Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π», ΡΠΎΠ·Π΄Π°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² JavaScript. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ Π²Π°ΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ GeeksforGeeks, ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌ Π³ΠΈΠΊΠ°ΠΌ. let numbers = [2, 8, 1, 16, 4, 3, 9] var sum = 0 var counter = 0 // ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅, ΠΏΠΎΠΊΠ° counter [Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½], ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ Π»ΡΠ±ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
Ρ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ. ΠΡΠΈΠΌΠ΅Ρ 1. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript.ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ ΡΠΎ ΡΡΠ°ΡΡΠ΅ΠΉ MDN ΠΎ ΡΠ΅Π΄ΡΠΊΡΠΎΡΠ°Ρ
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π‘Π΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Javascript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ. // ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π²ΡΡ
ΡΠΈΡΠ΅Π». ΠΠ½ΡΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΉ ΡΡΠΌΠΌΠ΅. ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ² Π² JavaScript? ΠΡΠΏΠΎΠ»ΡΠ·ΡΡβ¦ 5 ΠΌΠ°ΡΡΠ° 2017 Π³.β¦ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠΊΠ» for Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΌΠΌΡ. ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΡΡΠΌΠΌΠΈΡΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»Π° JavaScript; ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» Ρ ΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΡΠΈΡΡ JavaScript; ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΈΠΊΠ» for Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ JSP? Π‘ΡΠΌΠΌΠ° ΠΌΠ°ΡΡΠΈΠ²Π° - ΡΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΠΈΠ², ΠΏΡΠΎΠΉΠ΄Ρ ΡΠ΅ΡΠ΅Π· Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ².ΠΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ URL-Π°Π΄ΡΠ΅Ρ Π² Π½ΠΎΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? Π€ΡΠ½ΠΊΡΠΈΡ reduce () Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° (ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ). ΠΡΠΎΡ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΠΌΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Java, ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅. ΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ? Π― Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²Π°ΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅Ρ 1. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ array reduce () Π΄Π»Ρ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript. ΠΠ°ΠΊ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? Π’ΡΠ΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ: Π² ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅: Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ = 60 ΠΈ currentValue = 40, ΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ 100.ΠΡΡΠΈΡΠ»ΠΈΠ»ΠΈ ΡΡΠΌΠΌΡ, ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ ΡΠΈΡΠ»ΠΎ. ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°ΡΡ ΡΠΈΠΏΠ° Π²Π²ΠΎΠ΄Π° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄Π΄-ΠΌΠΌ-Π³Π³Π³Π³ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HTML? ΠΏΡΡΠ΅ΠΌ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ. ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π°. ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡ Π² JavaScript? ΠΠΏΡΡ. Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π° Π²Ρ
ΠΎΠ΄Π΅ 6, ΡΠΎ ΡΡΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ 1 + 2 + 3 + 4 + 5 + 6 = 21; Π¦ΠΈΠΊΠ» Β«ForΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π½Π°ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ. ΠΠ΅ΡΠ²Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ: Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅: Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ = 10 ΠΈ currentValue = 20, ΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ 30. ΠΠ΄Π΅ Ρ ΠΎΡΠΈΠ±Π°ΡΡΡ? Πβ¦ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° JavaScript Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠΌΠΌΡ ΡΠΈΡΠ΅Π» - Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΊΠΎΠ΄Ρ 10 Π»ΡΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
, ΡΡΠΎΠ±Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡ Π½Π°Π²ΡΠΊΠΈ HTML ΠΈ CSS. ΠΡΠΎ ΠΏΠ»ΠΎΡ
ΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ, ΡΠ΅ΠΌ ΠΊΠΎΠ΄, ΠΈΠ·Π±Π΅Π³Π°ΡΡΠΈΠΉ ΠΌΡΡΠ°ΡΠΈΠΉ. JQuery | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°, ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
count {ΡΡΠΌΠΌΠ° + = ΡΠΈΡΠ»Π° [ΡΡΠ΅ΡΡΠΈΠΊ] ΡΡΠ΅ΡΡΠΈΠΊ + = 1} ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΡΠ΅Π» Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΠΈ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΡΠ΅ΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ.ΠΠΎΠ»ΡΡΠΈΠ» Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° .length. const numbers = [10, 20, 30, 40] // ΡΡΠΌΠΌΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ 100, ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ JavaScript, Π§ΡΠΎ Π»ΡΡΡΠ΅: innerText, innerHTML ΠΈ textContent, Π¨Π°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΌΡΡΠ°ΡΠΈΠΉ, ΠΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡ ΡΡΡΠΎΠΊΡ Π² Javascript, 3 Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Ρ
ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΊΡΡΡΠ° Udemy, Π‘Π°ΠΌΡΠΉ ΠΌΠΎΡΠ½ΡΠΉ Π² ΠΌΠΈΡΠ΅ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Tic-Tac-Toe ΠΏΠΎ JavaScript, Π¦ΠΈΠΊΠ» ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π² JavaScript, ΠΠ»Π°ΡΡΡ JavaScript ES6, ΠΎΠ±ΡΡΡΠ½Π΅Π½Π½ΡΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ. ΡΡΠΊΠΎΡΡΡ_4 ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΈΠΊΠ» for, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΡΠ»Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² JavaScript? ΠΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΡΠ°Π·Π΄Π΅Π»ΠΈΠ² ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΡΠ°ΡΡΠΈ ΠΈ Π½Π°ΠΉΠ΄Ρ ΡΡΠΌΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Ρ.Π΅. close, link ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΈΠΊΠ» for Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΌΠΌΡ. ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, Π΄ΡΡΠ·ΡΡ! Π― ΡΠ½ΠΎΠ²Π° Π·Π°ΡΡΡΡΠ» Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠΈΠΊΠ»Π° for ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠΈΠΊΠ»Π° for Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅.ΠΊΠΎΠ΄. ΠΠ°ΠΊ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π½Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°ΠΌΠΈ Π² javascript? ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π· Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ» Β«ΠΠΎΠΊΠ°Β». ΠΠ°ΠΊ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ? ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅: ΠΠ΅ΡΡΠΈΡ PHP: 4.0.4+ ΠΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ PHP: ΠΠ΅ΡΡΠΈΠΈ PHP Π΄ΠΎ 4. 2.1 ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΈΡΠ»Π° (ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΡ
Π² Π½ΠΎΠ»Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ) ΠΠ°ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΡΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ MDN, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΡΡΠ΅Π»ΠΎΠΊ.ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ i Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠΌΠΌΡ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ i ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 1. Π’Π΅ΠΌΠ°: JavaScript / jQuery ΠΡΠ΅Π΄. | Π‘Π»Π΅Π΄. ΠΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄: ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠΊΠ» Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠΌΠΌΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ
ΡΠΈΡΠ΅Π» Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΠΈΠΊΠ»Π° Π² Java. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ: 100 Π‘ΡΠΌΠΌΠ° Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π»: 5050. ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π² JavaScript? ; pop Π±Π΅ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΊΠΎΠ½ΡΠ°.ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠΌΠΌΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅. ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ HTML-ΠΊΠΎΠ΄ Π² div Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? ΠΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π² JavaScript Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ: var ΡΠΈΡΠ»Π° = [1,2,3,4] var sum = 0; for (var i = 0; i [email protected] ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΡΠ²Π΅Ρ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ CSS ΠΈ JavaScript? ΠΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ: ΠΠΏΠ΅ΡΠ°ΡΠΎΡ 1 ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΠΈΠΊΠ»Π° (var i = 0) .Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sum ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π²Π½ΠΎΠ΅ Π½ΡΠ»Ρ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π΅Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠΌΠΌΡ Π½Π΅ΡΠ΅ΡΠ½ΡΡ
ΠΈ ΡΠ΅ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π» Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java. ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΈΡΠ»Π° Ρ var Π½Π° const. Π£ ΠΌΠ΅Π½Ρ Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π» 0 Π²ΠΌΠ΅ΡΡΠΎ NaN, Π΅ΡΠ»ΠΈ ΠΌΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΡΡ. ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ JavaScript Π² PHP? ΠΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ JSON Π² ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² JSON Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript? ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ jQuery / JavaScript? ΠΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄: ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠΊΠ» Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΠΌΠΌΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript. Π‘ΡΠΌΠΌΠ° ΠΌΠ°ΡΡΠΈΠ²Π°: ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ for ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ES6 Π² JavaScript. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° JavaScript. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΈΡΠ»ΠΎΠ²ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΡ, ΠΈ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠΊΠ», ΠΈ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ES6 Π½Π° ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°, Ρ.Π΅. Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² - ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ stack .. var numbers = [10, 20, 30, 40] // ΡΡΠΌΠΌΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ 100, for (var i = 0; Ρ
ΠΠ΅ΡΠ΅Π²ΡΠΉ Π³ΡΠ°Π²ΠΈΠΉ ΡΡΠ΄ΠΎΠΌ ΡΠΎ ΠΌΠ½ΠΎΠΉ,
ΠΠΏΡΠΎΠΌ Π§Π°ΠΉ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈΠΊΠ°Ρ
ΠΠ΅Π»ΠΈΠΊΠΎΠ±ΡΠΈΡΠ°Π½ΠΈΡ,
ΠΠ΅ΠΌΠ΅ΡΠΊΠΈΠΉ ΡΠ»ΠΈΠ²ΠΎΠ²ΡΠΉ ΡΠΎΡΡ,
ΠΡΡ Π΄ΡΡΠ³Π° Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ½ΡΠ° ΡΠ²Π΅ΡΠ°,
Flak 38 105ΠΌΠΌ,
Π¦Π΅Π½Π° ΠΏΠΎΠ΄Π½ΠΎΡΠ° Π΄Π»Ρ ΡΠΎΡΡΠ° Π² Π¨ΡΠΈ-ΠΠ°Π½ΠΊΠ΅,
ΠΠ°Π»ΠΎΡΠΈΠΉΠ½ΠΎΡΡΡ ΠΊΠΎΡΠ΅ΠΉΠ½ΠΎΠ³ΠΎ Π»ΠΈΠΊΠ΅ΡΠ° Π½Π° ΠΏΠΎΡΡΠΈΡ,
ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ Π΄Π²Π΅ ΡΡΠΌΠΌΡ Π² JavaScript | ΠΠΆΠΎΡΠ΄Π°Π½ ΠΡΡ
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΡΠΌΠΌΠ΅ Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, Π»ΠΎΠ³ΠΈΠΊΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ:
- ΠΠ»Ρ
currentElement
Π² ΠΌΠ°ΡΡΠΈΠ²Π΅currentElement
ΠΈnextElement
Ρ ΡΠ΅Π»ΡΡ.ΠΡΠ»ΠΈsum === target
, Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡcurrentElement
ΠΈnextElement
. - ΠΠ΅ΡΠ΅Π±ΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ²
ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³ΡΡΠ±ΠΎΠΉ ΡΠΈΠ»Ρ . ΠΡΠΎ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ
, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΡ ΠΏΠ°ΡΡ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΡΡΡΡΡΠ°ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΡΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΡΡ
=== target
, Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ
[array.length - 2, array.length - 1]
.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΡΡΠΈΡΡ ΡΡΠΈΡ
Π΄Π²ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ n-1
ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°
Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° Π΄Π»Ρ currentElement
.
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ
currentElement
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎ
currentElement
ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Ρ.
ΠΡΠΎΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΡΡΡΡΠ°ΠΌ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΠΎΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄; ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΡΠΎΡ ΡΠΈΠΏ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π° Π²Ρ
ΠΎΠ΄Π΅ ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ
.
ΠΠΊΠ½ΠΎ , ΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ currentElement
. ΠΠ΅Π»Π΅Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Ρ currentElement
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠΌΠΌΡ === target
.ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π·Π΅Π»Π΅Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΡ.
ΠΡΡΠ°ΠΆΠ°ΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ n ** 2
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΏΠ°Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°ΠΌΡΠΉ Π΄Π»ΠΈΠ½Π½ΡΠΉ (Ρ
ΡΠ΄ΡΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ O (n ** 2)
ΡΠ°Π·, ΡΡΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
Π²Ρ
ΠΎΠ΄ΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°
.
ΠΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡ.ΠΡΡΡ Π»ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° O (1)
?
Π₯Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ°
Π₯Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ° - ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΠ°Ρ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π₯ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡΠΈ. ΠΡΠΈ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ°.
Π JavaScript ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ:
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΡΠΎΠΊΠ°Ρ
6β9, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΡ
ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
, ΠΎΠ±ΡΠ°ΡΠΈΠ²ΡΠΈΡΡ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π² Ρ
ΡΡ-ΡΠ°Π±Π»ΠΈΡΠ΅
.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° O (1)
. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Ρ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ΠΊΠ»ΡΡΠ°.
ΠΡΠ°ΠΊ, Π±ΡΠ»ΠΎ Π±Ρ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ Π΄Π²ΡΡ ΡΡΠΌΠΌ; ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ
ΡΠΈΠΊΠ»ΠΎΠ², ΠΎΠ΄ΠΈΠ½ Π²Π»ΠΎΠΆΠ΅Π½ Π² Π΄ΡΡΠ³ΠΎΠΉ. Π¦ΠΈΠΊΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, - ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ°ΡΡΠΈΠ²
Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» Π±ΡΠ» ΠΎΠΊΡΠ°ΡΠ΅Π½ Π² Π·Π΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅Ρ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π²ΡΡΠ΅.
ΠΡΠ»ΠΈ Π±Ρ Π±ΡΠ» ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΊΠ», ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΎΠΊΠ½ΠΎΠΌ , ΠΊΡΠ°ΡΠ½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π²ΡΡΠ΅, Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ»Π° Π±Ρ O (n)
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Ρ
ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ°ΡΡΠΈΠ²
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π±Ρ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΠΉΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΏΠ°ΡΡ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ». ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ?
ΠΠ°, Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ.
ΠΡΠ°ΠΊ, ΡΠΈΠΊΠ» Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ²
ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π·Π° ΡΠ°Π·. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ currentElement
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
. ΠΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ?
Π§ΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΎ Ρ currentElement
, - ΡΡΠΎ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ currentElement
ΠΈ target
. ΠΡΠ°ΠΊ, ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅Π»Ρ - currentElement
Π² currentDifference
.ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π² Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ currentDifference
ΠΊΠ»ΡΡΠΎΠΌ Π² Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°
.
ΠΠΎΡ ΡΠΈΡΡΠ½ΠΎΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ ΡΡΠΎΡ ΡΠ°Π³ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ΅ΠΆΠ° Π²Ρ
ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ: array = [3, 2, 4], target = 6
. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠΈΠΊΠ»Π΅ currentElement = 2
.
ΠΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΡΡΠΊΠ° ΠΈ Π±ΡΠΌΠ°Π³Π°.
ΠΡΠ²Π΅Ρ Π΄Π»Ρ ΡΡΠΈΡ
Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
: [1, 2]
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ 2
ΠΈ 4
Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ 1
ΠΈ 2
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΡΡ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΡΠΌΠΌΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ target = 6
.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΡΠ΅Π» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊΠ° currentDifference
Π² hashTable
, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π²Π΅ΡΠ½ΡΠ» ΠΈΠ½Π΄Π΅ΠΊΡ hashTable [currentDifference]
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ [1, 2]
. 1
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ currentElement
Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΡΠ°ΠΌ Ρ ΡΠΎΠ±ΠΎΠΉ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΈ
.ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° currentElementIndex! == hashTable [currentDifference]
ΡΡΡΡΠ°Π½ΠΈΡ ΡΡΠΎΡ ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ.
ΠΡΠ°ΠΊ, ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ Π΅Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
- ΠΠ±ΠΎΠΉΡΠΈ
ΠΌΠ°ΡΡΠΈΠ²
. ΠΠ»ΡcurrentElement
Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅currentDifference
. - ΠΡΠ»ΠΈ
currentDifference
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²hashTable
ΠΈcurrentElementIndex! == hashTable [currentDifference]
, Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. - ΠΡΠ»ΠΈ
currentDifference
Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΎΠ±ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π²Π½Ρ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ²: ΡΡΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡβ¦ | Π‘ΠΈΠ½Π΄ΠΈ ΠΠ΅ΠΉ
Π‘ 2021 Π³ΠΎΠ΄ΠΎΠΌ! ΠΡΠΎ Π½ΠΎΠ²ΡΠΉ Π³ΠΎΠ΄ ΠΈ Π½ΠΎΠ²ΠΎΠ΅ Π½Π°ΡΠ°Π»ΠΎ, ΠΈ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
Π― Π±ΡΠ» Π·Π°Π½ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΎΠΉ ΠΊ ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠΈΠΌ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΈ ΡΠ΄Π²ΠΎΠΈΠ» ΡΡΠΈΠ»ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ , ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΡΠ΅ΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠΈΠΈ Β«ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ²Β».
Π€ΠΎΡΠΎ timJ Π½Π° Unsplash
Product Sum
ΠΠ° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π·Π°Π΄Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Product Sum. ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ. Π£ΡΠΈΡΡΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΠ², Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° - Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² (ΡΠΎ, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΒ» ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ) Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΡΡΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Β«ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅Β» ΠΌΠ°ΡΡΠΈΠ²Ρ.
Π ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΏΠΎΠ΄ ΡΡΠΌΠΌΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°? Π‘ΡΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Β«ΠΎΡΠΎΠ±ΠΎΠ³ΠΎΒ» ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΌΠΌΡ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½ΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π³Π²ΠΎΠ·Π΄ΠΊΠΎΠΉ - ΡΠ°ΠΌ, Π³Π΄Π΅ Π΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Β«ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅Β» ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΠΌΠΌΠΈΡΡΡΡΡΡ ΠΈ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡΡΡ Π½Π° ΠΈΡ ΡΡΠΎΠ²Π΅Π½Ρ Π³Π»ΡΠ±ΠΈΠ½Ρ (ΠΊΠ°ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Β«ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉΒ» ΠΌΠ°ΡΡΠΈΠ²).
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ:
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²: [a, b]
Π‘ΡΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° = a + bGiven ΠΠ°ΡΡΠΈΠ²: [a, [b, c]]
Π‘ΡΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° = a + 2 (b + c) ΠΠ°Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²: [a, [b, [c]]]
Π‘ΡΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° = a + 2 (b + 3c)
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ, Π½ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌΠΈ. Π±ΡΡΡΡΠΎ.ΠΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΠ½ΡΡ ΡΡΠΌΠΌΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°?
ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±Π·ΠΎΡ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ ΠΎΠ± ΡΡΠΎΠΌ - ΠΏΠΎΠΊΠ° ΠΌΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ², Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΏΠ°ΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π³Π»ΡΠ±ΠΈΠ½Ρ. ΠΡΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ°ΠΊ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΌΠ΅Π»ΡΡΠ°ΠΉΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ. ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ², ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² - ΡΠΎ Π΅ΡΡΡ ΡΡΠΎ Π½Π΅Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ - ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΡΠΌΠΌΠ΅. ΠΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΠΌΠΌΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΊΠΎΠ΄Ρ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π― Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» for Π΄Π»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Array.isArray ()
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sum ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ Π½Π΅Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΡΡ ΡΡΠΌΠΌΡ.ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡΡ. ΠΠ΄Π΅ΡΡ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ , Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 1, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΡ ΡΡΠΌΠΌΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΈΠΌ ΡΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π΄ΠΎΠ±Π°Π²ΠΈΠ² 1 ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ . ΠΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΡΠΌΠΌΠ΅.Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠΌΠΌΡ, ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡΡ Π½Π° Π½Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΌΠΌΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² JavaScript:
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠ°ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠΌΠΌΠΎΠΉ
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠ°ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠΌΠΌΠΎΠΉ - ΠΠ°Π΄Π°ΡΠ° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ
Π£ΡΠΎΠ²Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ : Π‘ΡΠ΅Π΄Π½ΠΈΠΉ
Π‘ΠΏΡΠΎΡΠ΅Π½ΠΎ Π² : Google, Facebook, Amazon
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: Π£ΡΠΈΡΡΠ²Π°Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· n ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ K, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΅ΡΡΡ Π»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠ°ΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π²Π½Π° ΡΠΎΡΠ½ΠΎ K.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ²ΠΎΠ΄: A [] = [-5, 1, -40, 20, 6, 8, 7], K = 15
ΠΡΡ ΠΎΠ΄: true (7, 8 ΠΈ -5, 20 - ΠΏΠ°ΡΡ Ρ ΡΡΠΌΠΌΠΎΠΉ 15)
ΠΡ ΠΎΠ΄: A [] = [-5, 4, -2, 16, 8, 9], K = 15
ΠΡΡ ΠΎΠ΄: false (ΠΠ΅Ρ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΌΠΌΠ° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π²Π½Π° Π½Π° 15)
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠ΅ΡΡ:
- ΠΠ½Π°Π΅ΠΌ Π»ΠΈ ΠΌΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΡΠΈΡΠ΅Π» Π² ΠΌΠ°ΡΡΠΈΠ²Π΅? ΠΡΠ²Π΅Ρ: ΠΠ΅Ρ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ.
- ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½Ρ? ΠΡΠ²Π΅Ρ: ΠΠ΅Ρ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ.
- ΠΠ½Π°Π΅ΠΌ Π»ΠΈ ΠΌΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ K ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΡΠ΅Π» Π² ΠΌΠ°ΡΡΠΈΠ²Π΅? ΠΡΠ²Π΅Ρ: ΠΠ΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ.
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ? ΠΡΠ²Π΅Ρ: ΠΠ΅Ρ, ΠΏΠ°ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°.
- ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ? ΠΡΠ²Π΅Ρ: ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
ΠΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅ΡΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
- ΠΠΎΠ΄Ρ ΠΎΠ΄ Π³ΡΡΠ±ΠΎΠΉ ΡΠΈΠ»Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠΈΠΊΠ»ΠΎΠ²
- Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
- Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ Π΄Π²ΡΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ
1.ΠΠΎΠ΄Ρ ΠΎΠ΄ Π³ΡΡΠ±ΠΎΠΉ ΡΠΈΠ»Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π²Π΅ ΠΏΠ΅ΡΠ»ΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ A [i] + A [j] == K Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡ (i, j) Π² A []. ΠΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΡΠ° Ρ ΡΡΠΌΠΌΠΎΠΉ, ΡΠ°Π²Π½ΠΎΠΉ K, Π²Π΅ΡΠ½ΠΈΡΠ΅ true. Π ΠΊΠΎΠ½ΡΡ ΠΎΠ±ΠΎΠΈΡ ΡΠΈΠΊΠ»ΠΎΠ², Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π½Π°ΡΠ»ΠΈ ΡΠ°ΠΊΡΡ ββΠΏΠ°ΡΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ false.
ΠΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄
int find_sumPair (A [], n, K)
{
Π΄Π»Ρ (ΠΎΡ i = 0 Π΄ΠΎ n-1)
{
Π΄Π»Ρ (ΠΎΡ j = i + 1 Π΄ΠΎ n-1)
{
Π΅ΡΠ»ΠΈ (A [i] + A [j] == K)
Π²ΠΎΠ·Π²ΡΠ°Ρ 1
}
}
Π²ΠΎΠ·Π²ΡΠ°Ρ -1
}
ΠΠ½Π°Π»ΠΈΠ· ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π² Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ = ΠΡΠ΅Π³ΠΎ Π½Π΅Ρ. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠ°Ρ = nC2 = n (n-1) / 2 = O (nΒ²)
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ = O (nΒ²) ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° = O (1). ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠ»ΡΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ? ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π½Π°Π΄ ΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ.
2. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
ΠΠ΄Π΅Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ A [] ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ A [i] ΠΈΡΠΊΠ°ΡΡ, Π΅ΡΡΡ Π»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ K-A [i] Π² ββΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ Π·Π° O (logn), ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ.
Π¨Π°Π³ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ
- ΠΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² A [] Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° A [i] ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ K-A [i].
- ΠΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ A ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ K-A [i], Π²Π΅ΡΠ½ΡΡΡ true.
- ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π½Π°ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅, ΡΠΎ Π²Π΅ΡΠ½ΠΈΡΠ΅ false.
ΠΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄
int find_sumPair (A [], n, K)
{
Π‘ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ (A, n)
Π΄Π»Ρ (ΠΎΡ i = 0 Π΄ΠΎ n-1)
{
x = binarySearch (A, 0, n-1, K-A [i])
Π΅ΡΠ»ΠΈ (Ρ
)
Π²ΠΎΠ·Π²ΡΠ°Ρ 1
}
Π²ΠΎΠ·Π²ΡΠ°Ρ -1
}
ΠΠ½Π°Π»ΠΈΠ· ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ ΠΊΡΡΡ / ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ = Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ + n. ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° = O (nlogn) + n. O (logn) = O (nlogn)
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ = ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ + ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° (ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ)
ΠΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° = O (n) + O (1) = O ( n)
ΠΡΠ»ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π² ΠΊΡΡΠ΅, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° = O (1) + O (1) = O (1)
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡ!
- ΠΠ°ΠΊΠΎΠ²Ρ Π±ΡΠ»ΠΈ Π±Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π±ΡΡΡΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ? Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
- ΠΠ°ΠΊΠΎΠ²Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°?
- ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΈΡΠ΅ΠΌ K - A [i] Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ A []?
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°.
3. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ Π΄Π²ΡΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ
ΠΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² A [], Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ΡΡ Π΄Π²ΡΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π²Π½ΡΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Π³Π»ΡΠ΄Ρ Π½Π° ΠΈΡ ΡΡΠΌΠΌΡ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠΎΠ²Π½ΠΎ k, ΡΠΎ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ. ΠΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ k, ΡΠΎ Π»ΡΠ±Π°Ρ ΡΡΠΌΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ Π±ΠΎΠ»ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²Π½ΡΡΡΡ. ΠΡΠ»ΠΈ ΠΎΠ½ ΠΌΠ΅Π½ΡΡΠ΅ k, ΡΠΎ Π»ΡΠ±Π°Ρ ΡΡΠΌΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²Π½ΡΡΡΡ.
Π¨Π°Π³ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ
- ΠΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² A [] Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π΄Π²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ A [].
- Π»Π΅Π²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ: i = 0
- ΠΏΡΠ°Π²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ: j = n-1
3) ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΠΈΠΊΠ», ΠΏΠΎΠΊΠ° i 4) ΠΡΠ»ΠΈ Π½Π΅ Π½Π°ΡΠ΅Π» ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ - Π²Π΅ΡΠ½ΡΡΡ false. ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΠ½Π°Π»ΠΈΠ· ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΊΡΡΠΈ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ = Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ + Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° Ρ Π΄Π²ΡΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ (ΡΠΈΠΊΠ» while) = O (n log n) + O (n) = O (n log n) ΠΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° = O ( n) ΠΡΠ»ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π² ΠΊΡΡΠ΅, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° = O (1) ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡ! 4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΠΈ Π²ΡΡΠ°Π²ΠΊΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ O (1). Π¨Π°Π³ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ 3.ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π½Π°ΡΠ»ΠΈ ΡΠ°ΠΊΡΡ ββΠΏΠ°ΡΡ ΠΊ ΠΊΠΎΠ½ΡΡ ΡΠΈΠΊΠ»Π°, Π²Π΅ΡΠ½ΠΈΡΠ΅ false. ΠΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΠ½Π°Π»ΠΈΠ· ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π Ρ
ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈ Π½Π΅ Π½Π°ΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΡ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ = Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ + Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΈΡΠΊΠ° (K-A [i]) n ΡΠ°Π· Π² Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅ = n.Π (1) + ΠΏ. O (1) = O (n) Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° = ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅ = O (n) ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡ! Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ
int find_sumPair (A [], n, K)
{
Π‘ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ (A, n)
Ρ = 0
j = n -1
Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ (Ρ
bool checkPair (int A [], int n, int K)
{
ΠΠΎΠ·ΡΠΌΠΈΡΠ΅ Ρ
Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ H ΡΠ°Π·ΠΌΠ΅ΡΠ° O (n)
Π΄Π»Ρ (ΠΎΡ i = 0 Π΄ΠΎ n-1)
{
int x = K - A [i]
Π΅ΡΠ»ΠΈ (H.search (x) Π²Π΅ΡΠ½ΠΎ)
Π²ΠΎΠ·Π²ΡΠ°Ρ 1
H.insert (A [i])
}
Π²ΠΎΠ·Π²ΡΠ°Ρ -1
}