ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ основному содСрТимому

πŸ“„ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со строками

1. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ строку Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство раз​

Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая повторяСт строку ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ число Ρ€Π°Π·.

I. Π‘ использованиСм repeat() (ES6+)​

Π’Π°ΠΊ ΠΊΠ°ΠΊ String Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ repeat(), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

const repeatedString = 'Pitt';

console.log(`Name Repeat : ${repeatedString.repeat(3)}`); // "Name Repeat : PittPittPitt"

Бправка​

String.prototype.repeat()

II. Π‘ использованиСм цикла​

Если Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ repeat(), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» с Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ² Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами.

function repeatString(str, num) {
// Check if not a positive integer
if (num < 0 || !Number.isInteger(num)) {
throw new Error('Please enter a positive integer');
}

let repeatedString = '';
for (let i = 0; i < num; i++) {
repeatedString += str;
}
return repeatedString;
}

2. Π˜Π·Π²Π»Π΅Ρ‡ΡŒ имя Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠ· строки​

Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ getFileExtension(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Если Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π΅Ρ‚, Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ имя Ρ„Π°ΠΉΠ»Π°.

const fileName = 'video.mp4';
const fileNameWithoutExtension = 'file';
const fileNameWithoutExtension2 = 'example.flv';
const fileNameWithoutExtension3 = 'movie.mov';
const fileNameWithoutExtension4 = '.gitignore';

I. ИспользованиС split для получСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡβ€‹

const getFileExtension = (fileName) => {
const fileNameSplit = fileName.split('.');
return fileNameSplit[fileNameSplit.length - 1];
};

console.log(getFileExtension(fileName)); // "mp4"
console.log(getFileExtension(fileNameWithoutExtension)); // "file"
console.log(getFileExtension(fileNameWithoutExtension2)); // "flv"
console.log(getFileExtension(fileNameWithoutExtension3)); // "mov"
console.log(getFileExtension(fileNameWithoutExtension4)); // ""

3. Найти ΡΠ°ΠΌΡƒΡŽ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строку Π² массивС​

I. Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° sort()​

const stringArray = ['apple', 'banana', 'orange', 'kiwi', 'strawberry'];

const longestString = (stringArray) => {
return stringArray.sort((a, b) => b.length - a.length)[0];
};

console.log(longestString(stringArray)); // "strawberry"

II. Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° reduce()​

const stringArray = ['apple', 'banana', 'orange', 'kiwi', 'strawberry'];

const longestString = (stringArray) => {
return stringArray.reduce(
(acc, cur) => (acc.length > cur.length ? acc : cur),
''
);
};

console.log(longestString(stringArray)); // "strawberry"

4. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² camelCase​

Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² camelCase.

I. Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° replace()​

const camelCase = (str) => {
return str.replace(/-([a-z])/g, (match, char) => char.toUpperCase());
};

console.log(camelCase('hello-world')); // "helloWorld"

II. Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° split()​

const camelCase = (str) => {
return str
.split('-')
.map((word, index) =>
index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1)
)
.join('');
};

console.log(camelCase('hello-world')); // "helloWorld"

5. ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² строк Π² массивС​

I. Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Map()​

const stringArray = [
'apple',
'banana',
'orange',
'kiwi',
'strawberry',
'apple',
];

const countDuplicateString = (stringArray) => {
const map = new Map();
stringArray.forEach((item) => {
map.set(item, (map.get(item) || 0) + 1);
});
return Object.fromEntries(map);
};

console.log(countDuplicateString(stringArray)); // { apple: 2, banana: 1, orange: 1, kiwi: 1, strawberry: 1 }

II. Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° reduce()​

const stringArray = [
'apple',
'banana',
'orange',
'kiwi',
'strawberry',
'apple',
];

const countDuplicateString = (stringArray) => {
return stringArray.reduce((acc, cur) => {
acc[cur] = (acc[cur] || 0) + 1;
return acc;
}, {});
};

console.log(countDuplicateString(stringArray)); // { apple: 2, banana: 1, orange: 1, kiwi: 1, strawberry: 1 }

III. Π‘ использованиСм Object.groupBy() (ES2023+)​

const stringArray = ['apple', 'banana', 'orange', 'kiwi', 'strawberry'];

const countDuplicateString = (stringArray) => {
return Object.groupBy(stringArray);
};

console.log(countDuplicateString(stringArray)); // { apple: 2, banana: 1, orange: 1, kiwi: 1, strawberry: 1 }

6. Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΈ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· массива строк​

I. Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° split()​

const files = [
'document.docx',
'image.jpg',
'script.js',
'style.css',
'data.json',
'image.png',
'new-image.png',
];

const getFileExtension = (files) => {
return files
.map((file) => file.split('.').pop())
.filter((file, index, self) => self.indexOf(file) === index);
};

console.log(getFileExtension(files)); // ["docx", "jpg", "js", "css", "json", "png"]