Nick De Jesus
I like React, love React Native. I play Tekken competitively
muigai unaka
Week 2
Collection | Index/Access | Search/Find | Insert | Delete |
---|---|---|---|---|
Array | O(1) Constant | O(N) Linear | O(N) Linear | O(N) Linear |
Set | O(1) Constant |
O(N) Linear |
O(N) Linear | O(N) Linear |
Map | O(1) Constant | O(N) Linear |
O(1) Constant |
O(1) Constant |
Object | O(1) Constant | O(N) Linear |
O(1) Constant |
O(1) Constant |
.push(elem) adds an element to the end
.shift() gets the first element from the array, causing the 2nd element to become the 1st
.pop() gets the last element from the array and returns it
.unshift(elem) adds an element to the beginning of the array
.splice(pos, deleteCount, ...items) – at index pos delete deleteCount elements and insert items
Method | Definition | Performance |
---|---|---|
.push(elem) | adds an element to the end | O(1) |
.shift() | gets the first element from the array, causing the 2nd element to become the 1st | O(N) |
.pop() | gets the last element from the array and returns it | O(1) |
.unshift(elem) | adds an element to the beginning of the array | O(N) |
.splice(pos, delAmt, ...items) | at index pos delete delAmt elements and insert items | O(N) |
.indexOf(item)/.lastIndexOf(item, pos) – look for item starting from position pos, return the index or -1 if not found.
.includes(value) – returns true if the array has value, otherwise false.
.find(func)/filter(func) – filter elements through the function, return first/all values that make it return true.
.findIndex(func) is like find, but returns the index instead of a value.
Method | Definition | Performance |
---|---|---|
.indexOf(item, pos) | search for item, left to right, from index pos, return the index or -1 if not found. | O(N) |
.lastIndexOf(item, pos) | search for item, right to left, from index pos, return the index or -1 if not found. | O(N) |
.includes(val) | returns true if the array has value val, otherwise false | O(N) |
.find(func) or .filter(func) | filter elements through the function, return first/all values that meet the condition state | O(N) |
.findIndex(func) | similar to find, but returns the index instead of a value. | O(N) |
// Multidimensional arrays
// Arrays can have items that are also arrays.
// We can use it for multidimensional arrays,
// for example to store matrices:
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log( matrix[1][1] ); // 5, the central element
The map() method takes in a function and is called on an array. It creates a new array with each element in the array mutated by the provided function.
let arr = [5, 7, 4, 12];
arr.map(function(currentValue, idx, copyOfArr) {
console.log(currentValue);
console.log(idx);
console.log(copyOfArr);
console.log(currentValue * 7)
return currentValue * 7
});
console.log(arrMultipliedBy7);
// output: [ 35, 49, 28, 84 ]
The filter() method takes in a function and is called on an array. It creates a new array after checking the given function's condition against each element in the array
let cars = [
'Mclaren','Lamborghini','Ferrari','Porsche','Mercedes','Corvette'
];
let filteredCars = cars.filter(function(car, idx, copyOfCars) {
console.log(car);
console.log(idx);
console.log(copyOfCars);
console.log(car.length > 7); // condition to filter by
return car.length > 7
});
console.log(filteredCars);
// output: [ "Lamborghini", "Mercedes", "Corvette" ]
The reduce() method takes in a function and is called on an array. It creates a new array after checking the given function's condition against each element in the array
const nums = [3, 4, 2, 9];
const reduce = function (accumulator, currentValue, idx, copyOfNums) {
console.log(accumulator)
console.log(currentValue)
console.log(idx)
console.log(copyOfNumbers)
return accumulator + currentValue;
};
console.log(nums.reduce(reduce)); // output: 18
console.log(nums.reduce(reduce, 7)); // output: 25
.add(val) – adds a value val, returns the set itself.
.delete(val) – removes the value val, returns true if value existed at the moment of the call, otherwise false
.has(val) – returns true if the value val exists in the set, otherwise false
.size – is the elements count in the set
Method | Definition | Performance |
---|---|---|
.add(val) | adds a value val, returns the set itself. | O(N) |
.delete(val) | removes the value val, returns true if value existed at the moment of the call, otherwise false | O(N) |
.has(val) | returns true if the value val exists in the set, otherwise false | O(N) |
.size | is the elements count in the set | O(1) |
let aubrey = { lname: "Ever", fname: "Greatest" };
aubrey["lname"] - use bracket notation to get/set a value of an object
aubrey.fname - use dot notation to get/set a value of an object
delete aubrey.fname - use the delete operator to remove a property/value pair from an object
Object.keys(obj) – returns an array of keys
Object.values(obj) – returns an array of values
Object.entries(obj) – returns an array of [key, value] pairs
const deepClone = (source) => {
// If the source isn't an Object or Array, throw an error.
if ( !(source instanceof Object) || source instanceof Date || source instanceof String ) {
throw 'Only Objects or Arrays are supported.'
}
// Set the target data type before copying.
let target = Array.isArray(source) ? [] : {};
for (let prop in source){
// Make sure the property isn't on the protoype
if ( source instanceof Object && !(source instanceof Array)
&& !(source.hasOwnProperty(prop)) ) {
continue;
}
// If the current property is an Array or Object,
// recursively clone it, else copy it's value
if ( source[prop] instanceof Object && !(source[prop] instanceof Date)
&& !(source[prop] instanceof String) ) {
target[prop] = deepClone(source[prop])
} else {
target[prop] = source[prop]
}
}
return target;
}
.set(key, val) – stores the value val by the key.
.get(key) – returns the value by the key, undefined if key doesn’t exist in map.
.has(key) – returns true if the key exists, false otherwise.
.delete(key) – removes the value by the key
.size – returns the current element count.
Method | Definition | Performance |
---|---|---|
.set(key, val) | stores the value val by the key. | O(1) |
.get(key) | returns the value by the key, undefined if key doesn’t exist in map | O(1) |
.has(key) | returns true if the key exists, false otherwise | O(N) |
.delete(key) | removes the value by the key |
O(N) |
.size | returns the current element count. | O(1) |
By Nick De Jesus