Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Fibonacci numbers
- const fib = function (n) {
- if (n === 0 || n === 1) {
- return [0, 1];
- }
- const fibArr = fib(n-1)
- fibArr.push(fibArr[fibArr.length - 1] + fibArr[fibArr.length - 2]);
- return fibArr;
- }
- console.log(fib(8));
- // duplicate Array
- const duplicate = function(arr) {
- return arr.concat(arr);
- }
- console.log(duplicate([1,2,3]))
- // Deep copy an object
- const deepCopy = function (obj) {
- const copyObj = {};
- const keys = Object.keys(obj)
- keys.forEach(key => {
- if (obj[key] instanceof Object) {
- if (obj[key] instanceof Function) {
- copyObj[key] = obj[key]
- } else if(obj[key] instanceof Array) {
- copyObj[key] = obj[key].map(el => {
- if (el instanceof Object) {
- el = deepCopy(el)
- }
- return el;
- });
- }
- else {
- copyObj[key] = deepCopy(obj[key])
- }
- } else {
- copyObj[key] = obj[key]
- }
- });
- return copyObj;
- }
- const human = {
- name: "Georgi",
- address: {
- street: "ulica"
- },
- func: function() {
- return 1;
- },
- arr: [1,2,3]
- };
- const human2 = deepCopy(human);
- console.log(human === human2)
- human2.arr.push(4);
- human2.address.street = ""
- console.log(human)
- console.log(human2)
- // Total Time
- const arr = ["1:23:45"];
- const totalTime = function (arr) {
- const totalSeconds = arr.reduce((sec, el) => {
- const timeArr = el.split(':').map(Number);
- sec += timeArr[0] * 3600 + timeArr[1] * 60 + timeArr[2];
- return sec;
- }, 0);
- const hours = Math.floor(totalSeconds / 3600);
- const mins = Math.floor((totalSeconds - hours * 3600) / 60);
- const seconds = totalSeconds - hours * 3600 - mins * 60;
- return [hours, mins, seconds];
- }
- console.log(totalTime(arr));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement