const main = () => { const links = [ 'https://www.uol', 'https://www.bol.com.br', 'https://www.uol', 'https://noticias.uol.com.br', 'https://www.bol.com.br', ]; // converter para ES6 const uniqueLinks = new Set(links); return uniqueLinks.length; };
- const main = () => {
let links = [- const links = [
- 'https://www.uol',
- 'https://www.bol.com.br',
- 'https://www.uol',
- 'https://noticias.uol.com.br',
- 'https://www.bol.com.br',
- ];
- // converter para ES6
var uniqueLinks = links.reduce(function (carry, item) {if (carry.indexOf(item) === -1) {carry.push(item);}return carry;}, []);- const uniqueLinks = new Set(links);
- return uniqueLinks.length;
- };
// TODO: Add your tests here // Starting from Node 10.x, [Mocha](https://mochajs.org) is used instead of our custom test framework. // [Codewars' assertion methods](https://github.com/Codewars/codewars.com/wiki/Codewars-JavaScript-Test-Framework) // are still available for now. // // For new tests, using [Chai](https://chaijs.com/) is recommended. // You can use it by requiring: // const assert = require("chai").assert; // If the failure output for deep equality is truncated, `chai.config.truncateThreshold` can be adjusted. describe("Solution", function() { it("should test for something", function() { // Test.assertEquals(1 + 1, 2); // assert.strictEqual(1 + 1, 2); }); });
- // TODO: Add your tests here
- // Starting from Node 10.x, [Mocha](https://mochajs.org) is used instead of our custom test framework.
- // [Codewars' assertion methods](https://github.com/Codewars/codewars.com/wiki/Codewars-JavaScript-Test-Framework)
- // are still available for now.
- //
- // For new tests, using [Chai](https://chaijs.com/) is recommended.
- // You can use it by requiring:
- // const assert = require("chai").assert;
- // If the failure output for deep equality is truncated, `chai.config.truncateThreshold` can be adjusted.
- describe("Solution", function() {
- it("should test for something", function() {
- // Test.assertEquals(1 + 1, 2);
- // assert.strictEqual(1 + 1, 2);
- });
- });
// 1 - Encontre um número maior que 6 var arr = [1, 4, 6, 8, 10]; var resp = arr.find(v => v > 6); // 2 - Encontre o índice de um número maior que 6 var arr = [1, 4, 6, 8, 10]; var resp = arr.findIndex(v => v > 6); // 3 - Encontre os numeros maiores que 6 var arr = [1, 4, 6, 8, 10]; var resp = arr.filter(v => v > 6); // 4 - O array contém o número 6? var arr = [1, 4, 6, 8, 10]; var resp = arr.includes(6); // 5 - Todos os números do array são números pares? var arr = [2, 4, 6, 8, 9]; var resp = arr.every(n => n % 2 == 0); // 6 - Algum número no array é impar? var arr = [2, 4, 0, -2]; var resp = arr.some(n => n % 2 != 0);
- // 1 - Encontre um número maior que 6
- var arr = [1, 4, 6, 8, 10];
var resp = null;for (var i = 0; i < arr.length; ++i) {if (arr[i] > 6) {resp = arr[i];break;}}- var resp = arr.find(v => v > 6);
- // 2 - Encontre o índice de um número maior que 6
- var arr = [1, 4, 6, 8, 10];
var resp = null;for (var i = 0; i < arr.length; ++i) {if (arr[i] > 6) {resp = i;break;}}- var resp = arr.findIndex(v => v > 6);
- // 3 - Encontre os numeros maiores que 6
- var arr = [1, 4, 6, 8, 10];
var resp = arr.reduce((carry, item) => {if (item > 6)carry.push(item);return carry;}, []);- var resp = arr.filter(v => v > 6);
- // 4 - O array contém o número 6?
- var arr = [1, 4, 6, 8, 10];
var resp = arr.indexOf(6) > -1;- var resp = arr.includes(6);
- // 5 - Todos os números do array são números pares?
- var arr = [2, 4, 6, 8, 9];
var resp = true;for (var i = 0; i < arr.length; ++i) {if (arr[i] % 2 !== 0) {resp = false;break;}}- var resp = arr.every(n => n % 2 == 0);
- // 6 - Algum número no array é impar?
- var arr = [2, 4, 0, -2];
var resp = arr.reduce(function (carry, item) {return carry || (item % 2 !== 0);}, false);- var resp = arr.some(n => n % 2 != 0);
const main = () => { const a = [1, 2, 3]; const b = [4, 5, 6]; const c = [7, 8, 9]; return [...a, ...b, ...c].join(','); }
- const main = () => {
let a = [1, 2, 3];- const a = [1, 2, 3];
- const b = [4, 5, 6];
- const c = [7, 8, 9];
let b = [4, 5, 6];let c = [7, 8, 9];// converter para ES6var d = a.concat(b).concat(c);return d.join(',');- return [...a, ...b, ...c].join(',');
- }
function a() { "Atualizar o array com o dobro de seus valores" let a = [1, 2, 3, 4]; a.forEach((item, index) => (a[index] = item * 2)); // responda: for, forEach, map ou reduce return 'forEach'; } function b() { "Em uma nova variável atribuir a soma dos valores do array" const a = [4, 10, 23, 99]; let r = a.reduce((s, n) => s + n); // responda: for, forEach, map ou reduce return 'reduce'; } function c() { "Em um novo array o quadrado dos itens de A" const a = [4, 8, 16]; let r = a.map(item => Math.pow(item, 2)); // responda: for, forEach, map ou reduce return 'map'; } function d() { "Encontrar no array um item que seja maior ou igual a 2" const a = [1, 2, 3, 4]; let resp = null; a.forEach((item, index) => { if (item >= 2) { resp = item; //break; } }); // responda: for, forEach, map ou reduce return 'forEach'; } function e() { "Um novo array com valores únicos de A" const a = [1, 2, 2, 3, 4]; let b = a.reduce((arr, n) => { if(!arr.includes(n)) arr.push(n); return arr; }, []); // responda: for, forEach, map ou reduce return 'reduce'; } function f() { "Novo array com itens de índice par" let a = ['a', 'b', 'c', 'd']; let b = a.reduce((arr, item, i) => { if(i % 2 == 0 ) arr.push(item) return arr; }, []); // responda: for, forEach, map ou reduce return 'reduce'; } function g() { "Executar chamadas http de forma assíncrona" let a = ['/p=1', '/p=2', '/p=3']; for (let path of a) { let xhr = new function() {}; // ... } // responda: for, forEach, map ou reduce return 'for'; } function h() { "Novo array com apenas titulo e descrição de uma resposta no Monte Carlo" let results = [{titulo: '..', descricao: '', tags: [], photo: '...'}]; let resp = results.map(({titulo, descricao}) => ({titulo, descricao})); // responda: for, forEach, map ou reduce return 'map'; } function i() { "Descompactar a matriz em uma lista" let a = [[1, 2], [4, 5], [4, 5]]; let resp = a.reduce((carry, row) => ([...carry, ...row]), []); // responda: for, forEach, map ou reduce return 'reduce'; } function j() { "Multiplicar matrizes" let a = [1, 2, 3]; let b = [4, 5, 6]; let resp = a.reduce((carry, v, i) => carry + v * b[i], 0); // responda: for, forEach, map ou reduce return 'reduce'; } function k() { "Transformar as letras em maiúsculas" let a = ['Fred', 'John', 'Paul']; a.forEach((name, i) => (a[i] = name.toUpperCase())); // responda: for, forEach, map ou reduce return 'forEach'; }; function l() { "Exibir no console as chaves e os valores" let config = {portal: 'UOL', channel: 'Notícias', slug: 'uol'}; for (const prop in config) { console.log(prop, config[prop]); } // responda: for, forEach, map ou reduce return 'for'; } function m() { "Exibir no console os itens do array" let tags = ['São Paulo', 'Sudeste', 'Brasil']; for (const k in tags) { console.log(tags[k]); } // responda: for, forEach, map ou reduce return 'for'; }
- function a() {
- "Atualizar o array com o dobro de seus valores"
- let a = [1, 2, 3, 4];
a.forEach((item, index) => {a[index] = item * 2;});- a.forEach((item, index) => (a[index] = item * 2));
- // responda: for, forEach, map ou reduce
return '';- return 'forEach';
- }
- function b() {
- "Em uma nova variável atribuir a soma dos valores do array"
let a = [4, 10, 23, 99];let r = 0;a.map(item => {r += item;});- const a = [4, 10, 23, 99];
- let r = a.reduce((s, n) => s + n);
- // responda: for, forEach, map ou reduce
return '';- return 'reduce';
- }
- function c() {
- "Em um novo array o quadrado dos itens de A"
let a = [4, 8, 16];- const a = [4, 8, 16];
- let r = a.map(item => Math.pow(item, 2));
- // responda: for, forEach, map ou reduce
return '';- return 'map';
- }
- function d() {
- "Encontrar no array um item que seja maior ou igual a 2"
let a = [1, 2, 3, 4];- const a = [1, 2, 3, 4];
- let resp = null;
- a.forEach((item, index) => {
- if (item >= 2) {
- resp = item;
break;- //break;
- }
- });
- // responda: for, forEach, map ou reduce
return '';- return 'forEach';
- }
- function e() {
- "Um novo array com valores únicos de A"
let a = [1, 2, 2, 3, 4];let b = [];for (const item of a) {if (!b.includes(item))b.push(b);}- const a = [1, 2, 2, 3, 4];
- let b = a.reduce((arr, n) => {
- if(!arr.includes(n)) arr.push(n);
- return arr;
- }, []);
- // responda: for, forEach, map ou reduce
return '';- return 'reduce';
- }
- function f() {
- "Novo array com itens de índice par"
- let a = ['a', 'b', 'c', 'd'];
let b = [];a.map((item, index) => {if (index % 2 == 0) {b.push(item);}});- let b = a.reduce((arr, item, i) => {
- if(i % 2 == 0 ) arr.push(item)
- return arr;
- }, []);
- // responda: for, forEach, map ou reduce
return '';- return 'reduce';
- }
- function g() {
- "Executar chamadas http de forma assíncrona"
- let a = ['/p=1', '/p=2', '/p=3'];
- for (let path of a) {
- let xhr = new function() {};
- // ...
- }
- // responda: for, forEach, map ou reduce
return '';- return 'for';
- }
- function h() {
- "Novo array com apenas titulo e descrição de uma resposta no Monte Carlo"
- let results = [{titulo: '..', descricao: '', tags: [], photo: '...'}];
- let resp = results.map(({titulo, descricao}) => ({titulo, descricao}));
- // responda: for, forEach, map ou reduce
return '';- return 'map';
- }
- function i() {
- "Descompactar a matriz em uma lista"
- let a = [[1, 2], [4, 5], [4, 5]];
- let resp = a.reduce((carry, row) => ([...carry, ...row]), []);
- // responda: for, forEach, map ou reduce
return '';- return 'reduce';
- }
- function j() {
- "Multiplicar matrizes"
- let a = [1, 2, 3];
- let b = [4, 5, 6];
- let resp = a.reduce((carry, v, i) => carry + v * b[i], 0);
- // responda: for, forEach, map ou reduce
return '';- return 'reduce';
- }
- function k() {
- "Transformar as letras em maiúsculas"
- let a = ['Fred', 'John', 'Paul'];
for (const [index, value] of a.entries()) {a[index] = value.toUpperCase();}- a.forEach((name, i) => (a[i] = name.toUpperCase()));
- // responda: for, forEach, map ou reduce
return '';}- return 'forEach';
- };
- function l() {
- "Exibir no console as chaves e os valores"
- let config = {portal: 'UOL', channel: 'Notícias', slug: 'uol'};
- for (const prop in config) {
- console.log(prop, config[prop]);
- }
- // responda: for, forEach, map ou reduce
return '';- return 'for';
- }
- function m() {
- "Exibir no console os itens do array"
- let tags = ['São Paulo', 'Sudeste', 'Brasil'];
- for (const k in tags) {
- console.log(tags[k]);
- }
- // responda: for, forEach, map ou reduce
return '';- return 'for';
- }
class Component { constructor(dom) { console.log('Parent class constructor executed!'); this.dom = dom; } onCreate() { return true; } } class Collection extends Component { constructor(dom, a) { super(dom); } }
- class Component {
- constructor(dom) {
- console.log('Parent class constructor executed!');
- this.dom = dom;
- }
- onCreate() {
- return true;
- }
- }
class Collection {//- class Collection extends Component {
- constructor(dom, a) {
- super(dom);
- }
- }
class Component { constructor(dom) { this.dom = dom; } onCreate() { console.log('onCreate from parent class'); return 'missing'; } static on(event, callback) { callback(); } async emit(event, data) {} } class Title extends Component { onCreate() { super.onCreate(); return 'super!'; } }
- class Component {
- constructor(dom) {
- this.dom = dom;
- }
- onCreate() {
- console.log('onCreate from parent class');
- return 'missing';
- }
- static on(event, callback) {
- callback();
- }
- async emit(event, data) {}
- }
- class Title extends Component {
- onCreate() {
- super.onCreate();
- return 'super!';
- }
- }
const main = () => { const obj = { title: 'UOL - O melhor conteúdo', url: 'https://www.uol', keywords: ['Notícias', 'Entretenimento'] }; const obj2 = (({keywords, ...rest}) => rest)(obj); return obj.hasOwnProperty('keywords') && !obj2.hasOwnProperty('keywords'); };
- const main = () => {
let obj = {- const obj = {
- title: 'UOL - O melhor conteúdo',
- url: 'https://www.uol',
- keywords: ['Notícias', 'Entretenimento']
};// converta para ES6function rem(obj) {delete obj.keywords;return obj;}var obj2 = rem(obj);- };
- const obj2 = (({keywords, ...rest}) => rest)(obj);
- return obj.hasOwnProperty('keywords') && !obj2.hasOwnProperty('keywords');
- };
const results = [ {materia: {conteudo: {titulo: 'São Paulo'}}, tags: [1, 2, 3]}, {materia: {conteudo: {}}, tags: [3, 2]}, {materia: {conteudo: {titulo: 'Rio de Janeiro'}}, tags: [3, 2]}, ]; for (const {materia: {conteudo: {titulo = 'Brasil'}}} of results) console.log(titulo);
let results = [- const results = [
- {materia: {conteudo: {titulo: 'São Paulo'}}, tags: [1, 2, 3]},
- {materia: {conteudo: {}}, tags: [3, 2]},
- {materia: {conteudo: {titulo: 'Rio de Janeiro'}}, tags: [3, 2]},
- ];
for (const result of results) {let titulo = result.materia.conteudo.titulo || 'Brasil';console.log(titulo);}- for (const {materia: {conteudo: {titulo = 'Brasil'}}} of results) console.log(titulo);
const materia = { conteudo: { titulo: 'UOL', }, tags: ['São Paulo', 'SP', 'Sudeste', 'Brasil', 'América Latina'] }; const [,uf, regiao] = materia.tags; const {conteudo:{titulo}} = materia;
var materia = {- const materia = {
- conteudo: {
- titulo: 'UOL',
- },
- tags: ['São Paulo', 'SP', 'Sudeste', 'Brasil', 'América Latina']
- };
var uf = materia.tags[1];var regiao = materia.tags[2];var titulo = materia.conteudo.titulo;- const [,uf, regiao] = materia.tags;
- const {conteudo:{titulo}} = materia;
const bg = 'gray'; const css = ` <style> body { background: ${bg}; color: black; } </style>`;
var bg = 'gray';- const bg = 'gray';
var css = '' +'<style>' +'body {' +' background: '+ bg + ';' +' color: black;''}' +'</style>';- const css = `
- <style>
- body {
- background: ${bg};
- color: black;
- }
- </style>`;