|
@@ -0,0 +1,106 @@
|
|
|
+// ------------------------------1--------------------------------------
|
|
|
+// Напишите функцию, которая в объекте меняет местами ключи и значения:
|
|
|
+// var obj = {
|
|
|
+// 'name': 'John',
|
|
|
+// 'email': 'john@mail.com'
|
|
|
+// };
|
|
|
+
|
|
|
+// function reverse(val) {
|
|
|
+// obj = val;
|
|
|
+// for (var key in obj) {
|
|
|
+// obj[obj[key]] = key;
|
|
|
+// delete obj[key] ;
|
|
|
+// }
|
|
|
+// return obj;
|
|
|
+// }
|
|
|
+// reverse(obj);
|
|
|
+// console.log(obj); // {'John': 'name', 'john@mail.com': 'email'}
|
|
|
+
|
|
|
+// ------------------------------2--------------------------------------
|
|
|
+// Напишите функцию-аналог splice, не используя никакие методы массива:
|
|
|
+// var arr = [1, 2, 4, 3];
|
|
|
+// arr = splice(arr, 2, 1);
|
|
|
+// console.log(arr); // [1, 2, 3]
|
|
|
+// arr = splice(arr, 2, 0, 100, 200, 300);
|
|
|
+// console.log(arr); // [1, 2, 100, 200, 300, 3]
|
|
|
+
|
|
|
+// var arr = [1, 2, 4, 3];
|
|
|
+// debugger;
|
|
|
+
|
|
|
+
|
|
|
+// function splice() {
|
|
|
+
|
|
|
+// var nwarr = [];
|
|
|
+// for (i=0; i < arguments.length; i++) {
|
|
|
+// nwarr[i] = arguments[i];
|
|
|
+// }
|
|
|
+
|
|
|
+// for (i=0, arr = [], j=0; i < nwarr[0].length; i++, j++) {
|
|
|
+// if
|
|
|
+// arr[i] = nwarr[0][j];
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+// // for (var i = 0; i < nwarr[0].length - nwarr[2]; i++ ) {
|
|
|
+// // if (i == nwarr[1]) {
|
|
|
+// // arr[i] = arr[i + nwarr[2]];
|
|
|
+// // }else if ( i + nwarr[1] < i + nwarr[2]) {
|
|
|
+// // arr[i] = arr[i + nwarr[2] + 1];
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// // arr.length = arr.length - nwarr[2];
|
|
|
+// // return console.log(arr);
|
|
|
+// // };
|
|
|
+
|
|
|
+// // function splice(arr) {
|
|
|
+// // array = arr;
|
|
|
+// //
|
|
|
+// // if (nwarr[2] === 1) {
|
|
|
+
|
|
|
+// // for (i=0,arr = []; (i < array[2]); i++) {
|
|
|
+
|
|
|
+// // arr[i] = array[i];
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// return console.log( arr );
|
|
|
+// }
|
|
|
+// splice(arr, 2, 1);
|
|
|
+// splice(arr, 2, 0, 100, 200, 300);
|
|
|
+
|
|
|
+// ------------------------------3--------------------------------------
|
|
|
+// Напишите функцию, которая возвращает сумму всех чисел, переданных в качестве аргументов,
|
|
|
+// число которых не ограничено. Функция работает только с числами (включая строковые).
|
|
|
+// Если какой-то из параметров - массив, то к сумме добавляется также сумма значений этого массива
|
|
|
+// (если какое-либо из значений этого массива также является массивом, то к результату добавляется
|
|
|
+// также и сумма его значений, и так далее).
|
|
|
+// var sum = getSum(1, '1', 'one', [2, '2', 'two']);
|
|
|
+// console.log( sum ); // 6
|
|
|
+
|
|
|
+// function sum() {
|
|
|
+
|
|
|
+// for(var i=0, summ = 0; i<arguments.length; i++){
|
|
|
+// if ( arguments[i] instanceof Array ) {
|
|
|
+// summ += sum.apply(arguments[i]);
|
|
|
+// }
|
|
|
+// else if (isFinite(arguments[i])) {
|
|
|
+// summ += +arguments[i];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return console.log(summ);
|
|
|
+// }
|
|
|
+// sum(1, '1', 'one', [2, '2', 'two'], 1, 4, 5, 7);
|
|
|
+
|
|
|
+function getSum(){
|
|
|
+ var sum = 0;
|
|
|
+ for(var i=0; i< arguments.length; i++){
|
|
|
+ // sum+= +arguments[i]
|
|
|
+ if (isFinite(arguments[i]))
|
|
|
+ {sum+= +arguments[i];
|
|
|
+ } else if (typeof arguments[i] === "object") {
|
|
|
+ sum+= getSum.apply(null, arguments[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return console.log(sum);
|
|
|
+}
|
|
|
+
|
|
|
+getSum(1, '1', 'one', [2, '2', 'two'], 1, 4, 5, 7);
|