123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- // ------------------------------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);
|