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/