Skip to content

Instantly share code, notes, and snippets.

@Knyazik01
Last active May 15, 2019
Embed
What would you like to do?
Lab 3
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function addClass(obj, cls) {
var classes = obj.className ? obj.className.split(' ') : [];
for (var i = 0; i < classes.length; i++) {
if (classes[i] == cls) return; // клас
}
classes.push(cls); // добавить
obj.className = classes.join(' '); // оновлення
}
var obj = {
className: 'open menu'
};
addClass(obj, 'new');
addClass(obj, 'open');
addClass(obj, 'me');
alert(obj.className)
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function unique(string) {
var obj = {};
for (var i = 0; i < string.length; i++) {
// розбити рядок на букви, впорядкувати і злити назад
var sorted = string[i].toLowerCase().split('').sort().join(''); // (*)
obj[sorted] = string[i]; // зберігає тільки одне значення з таким ключем
}
var result = [];
// тепер в obj знаходиться для кожного ключа рівно одне значення
for (var key in obj) result.push(obj[key]);
return result;
}
var string = ["C++", "C#", "C++", "С#",
"C", "C++", "JavaScript", "C++", "JavaScript"
];
alert( unique(string) );
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function camelize(str) {
var arr = str.split('-');
for (var i = 1; i < arr.length; i++) {
// перетвою перший синвол з Вел літери
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
}
return arr.join('');
}
alert( camelize("background-color") ); // бек коілр
alert( camelize("list-style-image") ); // ліст імедж
alert( camelize("-webkit-transition") ); // веб-кіт
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function removeClass(obj, cls) {
var classes = obj.className.split(' ');
for (var i = 0; i < classes.length; i++) {
if (classes[i] == cls) {
classes.splice(i, 1); // вилучити клас
i--; // (*)
}
}
obj.className = classes.join(' ');
}
var obj = {
className: 'open menu menu'
}
removeClass(obj, 'blabla');
removeClass(obj, 'menu')
alert(obj.className) // просто відкрити
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function filterRangeInPlace(arr, a, b) {
for (var i = 0; i < arr.length; i++) {
var val = arr[i];
if (val < a || val > b) {
arr.splice(i--, 1);
}
}
}
var arr = [5, 3, 8, 1];
filterRangeInPlace(arr, 1, 4);
alert( arr ); // [3, 1]
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
var arr = [5, 2, 1, -10, 8];
function compareReversed(a, b) {
return b - a;
}
arr.sort(compareReversed); // сортування
alert( arr );
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
var arr = ["HTML", "JavaScript", "CSS"];
var arrSorted = arr.slice().sort();
alert( arrSorted );
alert( arr );
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
var arr = [1, 2, 3, 4, 5];
function compareRandom(a, b) {
return Math.random() - 0.5;
}
arr.sort(compareRandom);
alert( arr ); // рандомні елементи
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function compareAge(personA, personB) {
return personA.age - personB.age;
}
// перевірка
var vasya = { name: "Вася", age: 23 };
var masha = { name: "Маша", age: 18 };
var vovochka = { name: "Вовочка", age: 6 };
var people = [ vasya , masha , vovochka ];
people.sort(compareAge); // вивід
for(var i = 0; i < people.length; i++) {
alert(people[i].name); // Вовочка Маша Вася
}
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
// 1 цикл
var list = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: null
}
}
}
};
function printList(list) {
var tmp = list;
while (tmp) {
alert( tmp.value );
tmp = tmp.next;
}
}
printList(list);
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
// другий - рекурсія
var list = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: null
}
}
}
};
function printList(list) {
alert( list.value ); // (1)
if (list.next) {
printList(list.next); // (2)
}
}
printList(list);
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
// третій - зворотня рекурсія
var list = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: null
}
}
}
};
function printReverseList(list) {
if (list.next) {
printReverseList(list.next);
}
alert( list.value );
}
printReverseList(list);
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
// обернений цикл
var list = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: null
}
}
}
};
function printReverseList(list) {
var arr = [];
var tmp = list;
while (tmp) {
arr.push(tmp.value);
tmp = tmp.next;
}
for (var i = arr.length - 1; i >= 0; i--) {
alert( arr[i] );
}
}
printReverseList(list);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment