Skip to content

Instantly share code, notes, and snippets.

View juliovedovatto's full-sized avatar
🤓

Julio Vedovatto juliovedovatto

🤓
View GitHub Profile
@juliovedovatto
juliovedovatto / remove_duplicates_array_multi.js
Created December 3, 2016 19:42
Javascript: Remove duplicates of multidimensional array
// for browser using, this code requires javascript 1.7+
var arr = [
{ foo: 'bar', lorem: 'ipsum' },
{ foo: 'bar', lorem: 'ipsum' },
{ foo: 'bar', lorem: 'ipsum dolor sit amet' }
];
arr = arr.map(JSON.stringify).reverse() // convert to JSON string the array content, then reverse it (to check from end to begining)
.filter(function(item, index, arr){ return arr.indexOf(item, index + 1) === -1; }) // check if there is any occurence of the item in whole array
@juliovedovatto
juliovedovatto / in_array.js
Created November 25, 2016 18:26
Javascript: check if the given element is in array
function in_array(value, array) {
if (array.constructor !== Array)
return false;
return array.filter(function(item) { return item == value; }).length > 0;
}
// example
in_array(2, [1,2,3, "foo", "bar"]); // true
@juliovedovatto
juliovedovatto / swap_elements_array.js
Last active November 25, 2016 18:13
Javascript snippet to swap elements in array
// one line code to swap elements in array
arr[x] = [arr[y],arr[y] = arr[x]][0];
@juliovedovatto
juliovedovatto / random_number.js
Last active November 15, 2016 00:15
random_number: javascript function to sort a number in a given range. Supports blacklisting array of numbers.
function random_number(min, max, blacklist) {
min = min || 0;
max = max || 0;
var random = Math.floor(Math.random() * (max - min + 1)) + min;
if (!blacklist || blacklist.constructor !== Array)
return random;
else if (typeof blacklist == 'string')
blacklist = [ blacklist ];
@juliovedovatto
juliovedovatto / image_blur.js
Created November 9, 2016 15:05
node gm - keep Aspect Ratio on resize and fill with blur background (with imagemagick)
var GM = require('gm').subClass({ imageMagick: true }),
Q = require('q'), // promisses support
fs = require('fs'),
path = require('path');
function create_thumb(img, dest_img, width, height) {
var deferred = Q.defer();
Q.when(get_image_size(img)).then(function (size) {
var thumb_width = width,
@juliovedovatto
juliovedovatto / ecmascript_6_array_shuffle.js
Last active September 20, 2016 13:50
ECMAScript 6 Array shuffle
// METHOD 1
Object.assign(Array.prototype, {
shuffle() {
let m = this.length, i;
while (m) {
i = (Math.random() * m--) >>> 0;
[this[m], this[i]] = [this[i], this[m]];
}
return this;
}
@juliovedovatto
juliovedovatto / foo.php
Created March 1, 2016 20:02
PHP: array_flatten - método para deixar array multidimensional com 1 dimensão apenas.
/**
* Função para deixar uma array multidimensional em 1 índice apenas.
* @see http://stackoverflow.com/a/1320259/390946
* @author Julio Vedovatto <juliovedovatto@gmail.com>
* @param array $array
* @return array
*/
function array_flatten(array $array) {
$return = array();