lodash clone vs jquery extend (v6)

Revision 6 of this benchmark created on


Preparation HTML

<script src="http://underscorejs.org/underscore-min.js">
</script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.0.1/lodash.min.js></script>

Setup

var user = [];
    user.user = JSON.parse('{"id":"116","ranking":20100,"name":"robertstracke","full_name":"Robert Stracke","email":"robert.stracke@yammer-inc.com","job_title":null,"photo":"https://www.yammer.dev/mugshot/images/48x48/no_photo.png","mugshot_url_template":"https://www.yammer.dev/mugshot/images/{width}x{height}/no_photo.png","web_url":"https://www.yammer.dev/yammer-inc.com/users/robertstracke","presence":null,"group_ids":["1201487","1203258","1251963","1258465","1226273","976603","1254605","1201571","1224329","1199795","943331","757351","1258464","870956","1229512","1232721","986622","972323","780339","1229510","1226263","975089"],"index":"user_users","model":"user","insertTime":1360688112053}');

Test runner

Ready to run.

Testing in
TestOps/sec
lodash
var user2 = _.clone(user);
ready
jquery
var user2 = $.extend(false, {}, user);
ready
jquery deep
var user2 = $.extend(true, {}, user);
ready
JSON
var user2 = JSON.parse(JSON.stringify(user));
ready
case optimized
var keys = _.keys(user);
if (keys.length !== user.length) {
  var userObject = {};

  for (var keyName in keys) {
    userObject[keyName] = user[keyName];
  }

  user = userObject;
}

var user2 = JSON.parse(JSON.stringify(user));
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.