Start a new Kumite
AllAgda (Beta)BF (Beta)CCFML (Beta)ClojureCOBOL (Beta)CoffeeScriptCommonLisp (Beta)CoqC++CrystalC#D (Beta)DartElixirElm (Beta)Erlang (Beta)Factor (Beta)Forth (Beta)Fortran (Beta)F#GoGroovyHaskellHaxe (Beta)Idris (Beta)JavaJavaScriptJulia (Beta)Kotlinλ Calculus (Beta)LeanLuaNASMNim (Beta)Objective-C (Beta)OCaml (Beta)Pascal (Beta)Perl (Beta)PHPPowerShell (Beta)Prolog (Beta)PureScript (Beta)PythonR (Beta)RacketRaku (Beta)Reason (Beta)RISC-V (Beta)RubyRustScalaShellSolidity (Beta)SQLSwiftTypeScriptVB (Beta)
Show only mine

Kumite (ko͞omiˌtā) is the practice of taking techniques learned from Kata and applying them through the act of freestyle sparring.

You can create a new kumite by providing some initial code and optionally some test cases. From there other warriors can spar with you, by enhancing, refactoring and translating your code. There is no limit to how many warriors you can spar with.

A great use for kumite is to begin an idea for a kata as one. You can collaborate with other code warriors until you have it right, then you can convert it to a kata.

### Concatenar listas

Code
Diff
• ``````const main = () => {

let a = [1, 2, 3];

let b = [4, 5, 6];

let c = [7, 8, 9];

// converter para ES6
var d = a.concat(b).concat(c);

return [...a,...b,...c].join(',');
}``````
• const main = () => {
• let a = [1, 2, 3];
• let b = [4, 5, 6];
• let c = [7, 8, 9];
• // converter para ES6
• var d = a.concat(b).concat(c);
• return d.join(',');
• return [...a,...b,...c].join(',');
• }
rods25vs.moragaFailed Tests

### Destructuring assignment

Code
Diff
• ``````var materia = {
conteudo: {
titulo: 'UOL',
},
tags: ['São Paulo', 'SP', 'Sudeste', 'Brasil', 'América Latina']
};

const {conteudo: {titulo}, tags: {uf, regiao}} = materia;``````
• var 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 {conteudo: {titulo}, tags: {uf, regiao}} = materia;

### Sobrescrevendo o constructor da classe base

Code
Diff
• ``````class Component {
constructor(dom) {
console.log('Parent class constructor executed!');
this.dom = dom;
}

onCreate() {
return true;
}
}

class Collection extends Component {
constructor(dom, test) {
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, test) {
• super(dom);
• }
• }

### Criando uma Classe

Code
Diff
• ``````class Component {
constructor (dom) {this.dom = dom;}

onCreate() {
return this.dom;
}
}``````
• function Component(dom) {
• this.dom = dom;
• this.onCreate = function() {
• class Component {
• constructor (dom) {this.dom = dom;}
• onCreate() {
• return this.dom;
• }
• }

### Criando um escopo

Code
Diff
• ``````{
function todo() {
return 'Walk';
}

// reescrever em ES6
{

function todo() {
return 'Run';
}

}
}
``````
• function todo() {
• return 'Walk';
• }
• // reescrever em ES6
• (function() {
• {
• function todo() {
• return 'Run';
• }
• })();
• return 'Walk';
• }
• // reescrever em ES6
• {
• function todo() {
• return 'Run';
• }
• }
• }

### Method shorthand e computed property names

Code
Diff
• ``````// reescreva usando ES6

var prop = 'myProp';

var obj = {
[prop]: 123,
myFunc() {
return this[prop];
}
};
``````
• // reescreva usando ES6
• var prop = 'myProp';
• var obj = {
• myFunc: function() {
• [prop]: 123,
• myFunc() {
• return this[prop];
• }
• };
• obj[prop] = 123;

### Deep matching e default values

Code
Diff
• ``````let 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 = [
• {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';
• for (const {materia: {conteudo: {titulo = "Brasil"}}} of results) {
• console.log(titulo);
• }

### Template Literals

Code
Diff
• ``````var bg = 'gray';

var css = `<style>
body {
background: \${bg}
color: black;
}
</style>`;

``````
• var bg = 'gray';
• var css = '' +
• '<style>' +
• 'body {' +
• ' background: '+ bg + ';' +
• ' color: black;'
• '}' +
• '</style>';
• var css = `<style>
• body {
• background: \${bg}
• color: black;
• }
• </style>`;

### Var, let ou const

Code
Diff
• ``````// Exercício 1
const titulo = "UOL - O melhor conteúdo";

// Exercício 2
const tags = []

tags.push(...['A', 'B']);

// Exercício 3
let descricao = "Em 1999";

descricao += " em São Paulo";

// Exercício 4
const materia = {titulo: "Barão de Limeira"};

materia.titulo = "Alameda " + materia.titulo;

// Exercício 5
for (let i = 10; i--;) {
console.log(i);
}

// Exercício 6
for (const tag of ['A', 'B']) {
console.log(tag);
}

// Exercício 7
for (var j = [].length; j--;) {}

if (j === -1) {
console.log('Não encontrei');
}

// Exercício 8
let a = 123;

{
a *= 2;
}

console.log(a);

// Exercício 9
let state = 'active';

function stop() {
state = 'paused';
}

stop();

// Exercício 10
const TRUE = !0;``````
• // Exercício 1
• var titulo = "UOL - O melhor conteúdo";
• const titulo = "UOL - O melhor conteúdo";
• // Exercício 2
• var tags = []
• const tags = []
• tags.push(...['A', 'B']);
• // Exercício 3
• var descricao = "Em 1999";
• let descricao = "Em 1999";
• descricao += " em São Paulo";
• // Exercício 4
• var materia = {titulo: "Barão de Limeira"};
• const materia = {titulo: "Barão de Limeira"};
• materia.titulo = "Alameda " + materia.titulo;
• // Exercício 5
• for (var i = 10; i--;) {
• for (let i = 10; i--;) {
• console.log(i);
• }
• // Exercício 6
• for (var tag of ['A', 'B']) {
• for (const tag of ['A', 'B']) {
• console.log(tag);
• }
• // Exercício 7
• for (var j = [].length; j--;) {}
• if (j === -1) {
• console.log('Não encontrei');
• }
• // Exercício 8
• var a = 123;
• let a = 123;
• {
• a *= 2;
• }
• console.log(a);
• // Exercício 9
• var state = 'active';
• let state = 'active';
• function stop() {
• state = 'paused';
• }
• stop();
• // Exercício 10
• var TRUE = !0;
• const TRUE = !0;

### Hello Python!

"Hello Python!" script.

``print "Hello Python!"``