cla*_*ani 27 javascript size lodash
文章(下面的链接)表明,在字符串上使用length属性会创建一个对象引用,这会不必要地降低函数的速度.
http://www.webreference.com/programming/javascript/jkm3/2.html
在这种情况下,使用lodash _.size()有什么好处?它与(native ...?)长度属性的执行方式有何不同?
如果你在计算对象中的数组或键,使用lodash大小而不是length属性有什么好处吗?
Doc*_*Max 29
从lodash来源,_.size()实现为:
function size(collection) {
var length = collection ? getLength(collection) : 0;
return isLength(length) ? length : keys(collection).length;
}
Run Code Online (Sandbox Code Playgroud)
对于一个数组,第一行间接地这样做collection.length,即_.size()如果有的话,稍微慢一点.
在性能文章中,性能问题是length当堆栈上的数字可用于实现相同目标时,正在使用属性查找.换句话说,解决方案不是寻找更快的属性,而是在可以完成时完全避免属性.
Ada*_*uch 24
当您需要结果的大小时,size()函数在链中最有用.使用value()解压缩所有内容只是为了获得大小.例如:
_(_.range(10))
.filter(function(item) { return item % 2; })
.size();
Run Code Online (Sandbox Code Playgroud)
与较长的形式相反:
_(_.range(10))
.filter(function(item) { return item % 2; })
.value()
.length;
Run Code Online (Sandbox Code Playgroud)
此函数还可以更轻松地查找对象的大小:
_.size({ a: 1, b: 2 });
Run Code Online (Sandbox Code Playgroud)
相反:
Object.keys({ a: 1, b: 2 }).length;
Run Code Online (Sandbox Code Playgroud)
size() 是关于代码简洁,而不是性能.
| 归档时间: |
|
| 查看次数: |
38168 次 |
| 最近记录: |