Bonfire: Check for Palindromes

Am obiceiul să complic lucrurile dar uite că acest bonfire a fost relativ usor. Codul original era putin mai lung (mai alex regexp) dar am văzut că cineva de pe gitter a sugerat doar \W|_ care înseamnă toate caracterele care nu sunt litere sau (|) underscore _

RegExp de la Mozilla e bun tare https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

function palindrome(str) {
str = str.replace(/\W|_/g, '').toLowerCase();
return str == str.split('').reverse().join('');
}

palindrome("eye");

Update: Se mai poate și [\W_] sau [^a-zA-Z0-9]

Bonfire: Arguments Optional

Nu am vrut să mă mai complic la acest bonfire că e deja 5 dimineața. Soluția e mai jos:

function add() {
 var a = arguments[0];
 var b = arguments[1];
 
 for ( var prop in arguments ) {
 if ( typeof arguments[prop] !== 'number' ) {
 return undefined;
 }
 }
 
 if ( arguments.length == 1 ) {
 return function(ar){
 if ( typeof ar !== 'number' ) {
 return undefined;
 }
 return a + ar;
 };
 } else {
 console.log(arguments);
 return Object.keys(arguments).reduce(function(prev,curr){
// return arguments[prev]+arguments[curr];
 return arguments.curr;
 });
 }
 
 

 return false;
}

console.log(add(2,3));

O chestie interesantă legată de psihologic / sentimental e că atunci când stăteam până la 3-4-5 dimineața ca să mă joc, înainte de a închide, mă simțeam aiurea de tot, complet nefolositor și mă încerca un sentiment de deznădejde că n-am făcut nimic bun în viață și că nu sunt bun la nimic însă dacă citesc sau învăț sau mă rog, totul este altfel, mă simt mai implinit și cu nădejdea că fac și eu ceva bun pentru societate, că pot contribui și eu cu ceva.

 

Bonfire: Everything Be True

Parcă nu îmi vine să cred ce se întâmplă. Ori sunt ultimele exerciții de la intermediate FOARTE UȘOARE ori mi-a dat Dumnezeu înțelepciune să le înțeleg (că spune Sfântul Apostol Iacov că să ne rugăm lui Dumnezeu să ne dea înțelepciune).

Rezolvarea mai jos:

function every(collection, pre) {
// Does everyone have one of these?
pre = collection.every(function(obj){
return obj.hasOwnProperty(pre)
});
return pre;
}

every([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");

Numai bine.

Bonfire: Binary Agents

Mi-a mai revenit puțin moralul. Mai jos este soluția pe care am găsit-o eu la acest bonfire:

function binaryAgent(str) {
str = str.replace(/([0-9]+)(\s)?/g, function(match, p1, p2){ p1 = String.fromCharCode(parseInt(p1, 2)); p2 = ''; return p1+p2; });
return str;
}

console.log(binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111"));

Spor 🙂