Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/strings #431

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions staff/estel-mora/strings/at.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
delete String.prototype.at

function at(string, index) {
if (index >= 0) {
return string[index]
} else {
let new_index = index + string.length
return string[new_index]
}
}

// CASE 1

var s = 'hola mundo'

var char = at(s, 6)

console.log(char)
// 'u'

// CASE 2

var s = 'hola mundo'

var char = at(s, 20)

console.log(char)
// undefined

// CASE 3

var s = 'hola mundo'

var char = at(s, -4)

console.log(char)
// 'u'
29 changes: 29 additions & 0 deletions staff/estel-mora/strings/endswith.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
delete String.prototype.endsWith

function endsWith(string, searchString) {
let index = string.length - searchString.length
for (let i = 0; i < searchString.length; i++) {
if (string[index + i] != searchString[i]) {
return false
}
}
return true
}

// CASE 1

var s = 'hola mundo'

var result = endsWith(s, 'ndo')

console.log(result)
// true

// CASE 2

var s = 'hola mundo'

var result = endsWith(s, 'dos')

console.log(result)
// false
40 changes: 40 additions & 0 deletions staff/estel-mora/strings/indexf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
delete String.prototype.indexOf

function indexOf(string, searchString) {
if (searchString === "") {
return 0
}

for (let i = 0; i < string.length - searchString.length; i++) {
let match = true;
for (let j = 0; j < searchString.length; j++) {
if (string[i + j] !== searchString[j]) {
match = false //només es torna false si es compleix la condició(if) de dalt.
break //només surtim del loop si es compleix la condició (if) de dalt.
}
}
if (match == true) {
return i
}
}

return -1
}

// CASE 1

var s = 'hola mundo'

var index = indexOf(s, 'ola')

console.log(index)
// 1

// CASE 2

var s = 'hola mundo'

var index = indexOf(s, 'olaf')

console.log(index)
// -1
42 changes: 42 additions & 0 deletions staff/estel-mora/strings/lastindexof.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
delete String.prototype.lastIndexOf

function lastIndexOf(string, searchString) {
debugger
var len = searchString.length;
var quote = ''
var start = 0
for (var i = string.length; i >= 0; i--) {
if (string[i] === searchString[0] && len === 1) {
return i;
} else if (string[i] === searchString[0] && len > 1) {
quote = string[i]
for (var j = 1; j < len; j++) {
quote += string[i + j]
start = i
}
}
if (quote === searchString) {
return start
}

}
return -1
}

// CASE 1

var s = 'hola mundo'

var index = lastIndexOf(s, 'o')

console.log(index)
// 9

// CASE 2

var s = 'hola mundo'

var index = lastIndexOf(s, 'ol')

console.log(index)
// 1
26 changes: 26 additions & 0 deletions staff/estel-mora/strings/repeat.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
delete String.prototype.repeat

function repeat(string, count) {
//1. crear una variable nueva(let result) para almacenar el string con sus repeticiones --> let result
//2. inicial la variable anterior con un string vacío ""
var result = ""
//3. incializar un bucle for con una variable auxiliar (ej: 'i')

//4. poner condición de continuidad en el for limitada a "count" veces
//5. incrementar la variable auxiliar 'i' en cada iteración
//6. Asignar a la variable (let result) su valor anterior + el valor del string (todo dentro del cuerpo del for)
for (var i = 0; i < count; i++) {
result = result + string
}
//7. Retornar el valor de la variable "result"
return result
}

// CASE 1

var s = 'happy! '

var result = repeat(s, 3)

console.log(result)
// 'happy! happy! happy!'
27 changes: 27 additions & 0 deletions staff/estel-mora/strings/slice.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
delete String.prototype.slice

function slice(string, indexStart, indexEnd) { //retorna un string nou que comença amb la posició indexstart fins indexEnd
let newString = ""
for (let i = indexStart; i < indexEnd; i++) {
newString = newString + string[i]
console.log(newString)
}
return newString
}

var s = 'hola mundo'

var piece = slice(s, 5, 8)

console.log(piece)

// CASE 2

var s = 'hola mundo'

var piece = slice(s, -3)

console.log(piece)
// 'ndo'


28 changes: 28 additions & 0 deletions staff/estel-mora/strings/slicetest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
delete String.prototype.slice

function slice(string, indexStart, indexEnd) {
var newString = ""
if (indexStart < 0) {
for (var i = string.length + indexStart; i < string.length; i++) {
newString = newString + string[i]
}
}
for (var i = indexStart; i < indexEnd; i++) {
newString = newString + string[i]
console.log(newString)
}

return newString
}


// RESULTAT

var s = 'hola mundo'

slice(s, -3) //com el valor es negatiu = iterar pel final en comptes el ppi.
// 'ndo'
//AIXÒ VOL DIR MODIFICAR EL for



22 changes: 22 additions & 0 deletions staff/estel-mora/strings/split.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
function split(string, separator) {
var word = ''
var list = []
for (var i = 0; i < string.length; i++) {
var char = string[i]
if (char === separator) {
list[list.length](word)
word = ''
} else {
word = word + char
}
}
list[list.length](word)
return list
}

// CASE
var s = 'hola mundo'

var words = split(s, ' ')
console.log(words)
// ['hola', 'mundo']
29 changes: 29 additions & 0 deletions staff/estel-mora/strings/startswith.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
delete String.prototype.startsWith

function startsWith(string, searchString) {
var len = searchString.length
var word = ''
for (var i = 0; i < len; i++) {
word += string[i];
}
if (word === searchString) return true
return false
}

// CASE 1

var s = 'hola mundo'

var result = startsWith(s, 'hol')

console.log(result)
// true

// CASE 2

var s = 'hola mundo'

var result = startsWith(s, 'holo')

console.log(result)
// false
45 changes: 45 additions & 0 deletions staff/estel-mora/strings/trim.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
delete String.prototype.trim
//removes the whitespace from both ends of the string and returns a new one, without modifying the original one.

function trim(string) {
var startIndex
for (var i = 0; i < string.length; i++) {
var char = string[i]

if (char !== ' ') {
startIndex = i
break
}
}
var endInddex = string.length - 1
for (var i = endInddex; i > -1; i++) {
var cbar = string[i]
if (char !== ' ') {
endInddex = i
break
}
}
var trimmed = ''
for (var i = startIndex; i < endInddex + 1; i++) {
var char = string[i]
trimmed += char
}
return trimmed
}

// CASE 1
console.log('CASE 1')
var greeting = ' Hello, World '
var trimmed = trimg(greeting)

console.log('>' + trimmed + '<')
//'Hello, World'


// CASE 2
var greeting = ' \n\t\r hola mundo \n\t\r '

var trimed = trim(greeting)

console.log('>' + trimed + '<')
// '>hola mundo<'