π ΠΠΎΠΈΡΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
1. ΠΠΎΠΈΡΠΊ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅β
I. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Set (ES6)β
const array = [6, 4, 3, 2, 4, 1, 6, 3, 2];
const findUniqueValue = (arr) => {
const uniqueValues = new Set(arr);
return [...uniqueValues];
};
console.log(findUniqueValue(array)); // [6, 4, 3, 2, 1]
II. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ filterβ
const array = [6, 4, 3, 2, 4, 1, 6, 3, 2];
const findUniqueValue = (arr) => {
return arr.filter((value, index, self) => self.indexOf(value) === index);
};
console.log(findUniqueValue(array)); // [6, 4, 3, 2, 1]
2. ΠΠΎΠΈΡΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·β
I. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ indexOf ΠΈ lastIndexOfβ
const array = [6, 4, 3, 2, 4, 1, 6, 3, 2];
const findSingleValue = (arr) => {
return arr.filter((value) => arr.indexOf(value) === arr.lastIndexOf(value));
};
console.log(findSingleValue(array)); // [1]
II. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ reduceβ
const array = [6, 4, 3, 2, 4, 1, 6, 3, 2, 8, 9];
const findSingleValue = (arr) => {
return arr.reduce((acc, value) => {
if (arr.indexOf(value) === arr.lastIndexOf(value)) {
acc.push(value);
}
return acc;
}, []);
};
console.log(findSingleValue(array)); // [1, 8, 9]
III. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Map Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈβ
ΠΠΎΡΡΠΈΠ³Π°Π΅Ρ ΡΠ΅Π»ΠΈ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡ ΠΎΠ΄
const arr = [6, 4, 3, 2, 4, 1, 6, 3, 2, 7, 8, 9];
const findUniqueValuesOptimized = (arr) => {
const uniqueSet = new Set();
const seenSet = new Set();
for (const num of arr) {
if (!seenSet.has(num)) {
uniqueSet.add(num);
seenSet.add(num);
} else {
uniqueSet.delete(num);
}
}
return Array.from(uniqueSet);
};
console.log(findUniqueValuesOptimized(arr)); // [1, 7, 8, 9]
3. Π‘ΡΠΌΠΌΠ° ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°β
I. ΠΡΡΡΡΠΎΠ΅ Ρ Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ for...ofβ
const numberArray = [1, 2, 3, 4, 5];
const sumArray = (arr) => {
let sum = 0;
for (const num of arr) {
sum += num;
}
return sum;
};
II. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΠ»Π° forβ
const numberArray = [1, 2, 3, 4, 5];
const sumArray = (arr) => {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
};
console.log(sumArray(numberArray)); // 15
4. Π‘ΡΠΌΠΌΠ° Π³Π»ΡΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°β
I. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠΈβ
const nestedArray = [1, 2, [3, 4, [5, 6], 7], 8, [9, 10]];
const sumNestedArray = (arr) => {
return arr.reduce((acc, val) => {
return acc + (Array.isArray(val) ? sumNestedArray(val) : val);
}, 0);
};
console.log(sumNestedArray(nestedArray)); // 55
II. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ flat Π΄Π»Ρ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°β
ΠΠ΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
flat, Π΅ΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ
const nestedArray = [1, 2, [3, 4, [5, 6], 7], 8, [9, 10]];
const sumNestedArray = (arr) => {
return arr.flat(Infinity).reduce((acc, val) => acc + val, 0);
};
console.log(sumNestedArray(nestedArray)); // 55
5. Π‘ΡΠΌΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ΅Π» Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ²β
I. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ reduce Π΄Π»Ρ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ΅Π»β
const mixedArray = [1, '2', 3, 'four', 5, true, [6], { num: 7 }, '8.5'];
const sumNumbers = (arr) => {
return arr.reduce((sum, item) => {
if (typeof item === 'number') {
return sum + item;
} else if (typeof item === 'string' && !isNaN(Number(item))) {
// If string-to-number conversion is needed, handle it here; otherwise remove this check
return sum + Number(item);
}
return sum;
}, 0);
};
console.log(sumNumbers(mixedArray)); // 19.5