var a = [ {n: 1, str: 'first'}, {n: 2, str: 'stable check 1'}, {n: 2, str: 'stable check 2'}, {n: 3, str: 'last'} ]; a.sort(function(a, b) { return a.n - b.n; });
Przykład jsfiddle: http://jsfiddle.net/gkucmierz/WWGa8/1/
var a = [ {n: 1, str: 'first'}, {n: 2, str: 'stable check 1'}, {n: 2, str: 'stable check 2'}, {n: 3, str: 'last'} ]; a.sort(function(a, b) { return a.n - b.n; });
var recursiveEach = function recur(obj, fn, depth) { if (typeof depth === 'undefined') depth = -1; var res = {}; if (getType(obj) === 'Object' && depth !== 0) { each(obj, function (el, key) { res[key] = recur(el, fn, depth - 1); }); return res; } return fn(obj); };
var getType = function (obj) { return ({}).toString.call(obj).slice(8, -1); }; var each = function (obj, fn) { var res = {}; for (var i in obj) { if (obj.hasOwnProperty(i)) { res[i] = fn.call(obj, obj[i], i); } } return res; };
var flatten = function(obj) { var res = []; recursiveEach(obj, function(val) { res.push(val); }); return res; };
var asyncMap = function(arr, fn, endFn) { var i = 0, len = arr.length, res = []; (function callee() { fn(arr[i], i, function(singleRes) { res.push(singleRes); if (++i < len) { callee(); } else { endFn(res); } }, arr); })(); };prosty przykład użycia: http://jsfiddle.net/gkucmierz/QzLP5/