当前位置: 首页 > news >正文

网站宣传页面做家教网站要多少钱

网站宣传页面,做家教网站要多少钱,包装设计报价明细,做网站,用什么做数据库最好什么是lodash Lodash 是一个 JavaScript 实用工具库#xff0c;提供了很多用于处理数据、简化开发等方面的功能。它提供了一组常用的工具函数#xff0c;用于处理数组、对象、字符串等常见数据结构#xff0c;同时也包含了一些函数式编程的工具。对于前端开发来说#xff…什么是lodash Lodash 是一个 JavaScript 实用工具库提供了很多用于处理数据、简化开发等方面的功能。它提供了一组常用的工具函数用于处理数组、对象、字符串等常见数据结构同时也包含了一些函数式编程的工具。对于前端开发来说是个很好用的工具甚至看过​有人说面试不会lodash被嘲讽了。 我所在的公司项目中也用了这个库今天就听同事吐槽他循环两万条数据进入卡住了溢出了找了半天问题最后没想到是foreach的过换成for循环就没问题了​。 那么为什么呢lodash是怎么实现foreach的呢​源码如下 import arrayEach from ./.internal/arrayEach.js; import baseEach from ./.internal/baseEach.js; ​ /*** Iterates over elements of collection and invokes iteratee for each element.* The iteratee is invoked with three arguments: (value, index|key, collection).* Iteratee functions may exit iteration early by explicitly returning false.** **Note:** As with other Collections methods, objects with a length* property are iterated like arrays. To avoid this behavior use forIn* or forOwn for object iteration.** since 0.1.0* alias each* category Collection* param {Array|Object} collection The collection to iterate over.* param {Function} iteratee The function invoked per iteration.* returns {Array|Object} Returns collection.* see forEachRight, forIn, forInRight, forOwn, forOwnRight* example** forEach([1, 2], value console.log(value))* // Logs 1 then 2.** forEach({ a: 1, b: 2 }, (value, key) console.log(key))* // Logs a then b (iteration order is not guaranteed).*/ function forEach(collection, iteratee) {const func Array.isArray(collection) ? arrayEach : baseEach;return func(collection, iteratee); } ​ export default forEach; 源码感兴趣可以去github上看 以下是一个对 Lodash forEach 源码的简要分析 function forEach(collection, iteratee) {const func Array.isArray(collection) ? arrayEach : baseEach;return func(collection, iteratee); }function arrayEach(array, iteratee) {let index -1;const length array null ? 0 : array.length;while (index length) {if (iteratee(array[index], index, array) false) {break;}}return array; }function baseEach(collection, iteratee) {let index -1;const iterable Object(collection);const length iterable.length;while (index length) {if (iteratee(iterable[index], index, iterable) false) {break;}}return collection; } 这里对 Lodash 的 forEach 进行了两个版本的优化arrayEach 用于数组baseEach 用于通用集合。它们都使用了一个 while 循环来迭代集合中的元素调用传入的 iteratee 函数。 主要要点 类型检测 在 forEach 函数中通过 Array.isArray 来判断集合的类型。如果是数组则使用 arrayEach 进行迭代否则使用 baseEach。迭代逻辑 arrayEach 和 baseEach 都使用了一个 while 循环来遍历集合。在每次迭代中调用传入的 iteratee 函数并检查其返回值。如果返回值为 false则中断循环。性能优化 Lodash 的实现对性能进行了一些优化比如使用了 length 变量缓存集合的长度减少了重复计算。处理对象 在 baseEach 中通过 Object(collection) 将集合转换为一个可迭代的对象。这样可以确保 baseEach 对于对象的处理更加一致无论是否为数组。 那么为什么在特别大数据下会出现问题呢 使用 forEach 处理几万条数据量可能会导致栈溢出的问题这通常是因为递归调用造成的。Lodash 的 forEach 实现是基于递归的而不是基于循环的因此对于大型数据集递归深度可能会导致栈溢出。 为了解决这个问题可以考虑使用其他方法比如使用普通的 for 循环等。
http://www.hkea.cn/news/14453997/

相关文章:

  • 邢台网站设计哪家专业曲靖网站微信建设
  • 郑志平爱站网创始人诸城网站建设葛小燕
  • 苏州网站建设凡科wordpress添加文章
  • 英文都不懂 学网站建设维护难吗一凡招聘 建筑人才网
  • 段友做的看电影网站合肥专业网站设计公司价格
  • 品牌网站建设堅持大蝌蚪开发一个网站要多久
  • 厦门市建设局网站咨询电话门户网站和微网站的区别
  • 软件开发培训去哪报名做移动网站优化首
  • 建设一个连接的网站wordpress销售主题
  • 服装网站html模板招聘网站上还要另外做简历吗
  • 微网站app制作实木餐桌椅网站建设公司
  • 沈阳网站建设那家好云南省城乡住房建设厅网站
  • 青岛物流公司网站建设连云港优化推广
  • 做seo时网站更新的目的专业做公墓 陵园的网站
  • 抚顺网站网站建设浦江县建设局网站
  • 佛山网页网站制作高柏企业管理咨询有限公司
  • 抖音平台建站工具北京网站定制建设
  • 录像网站怎么做ppt模板包含哪些内容
  • 广州网站制作开发公司设计网站可能遇到的问题
  • 国内建网站公司深圳兼职做网站
  • 做网赌需要在哪些网站投广告网站开发职业生涯规划范文
  • 美德的网站建设网站建设捌金手指花总二九
  • 有哪些做外贸的网站天津专业做网站公司
  • 青岛公司网站设计自助建站系统源码 资源网
  • 济南槐荫网站开发公司教学网站在线自测功能怎么做
  • 自己怎么开发网站百度搜国外服务器Wordpress
  • 民非企业网站建设费怎么记账php免费网站系统
  • 深圳建设银行网站首页网络营销是什么意思啊
  • 建材 东莞网站建设个人做淘宝客网站好做吗
  • 网站规划与建设 ppt大连百度推广公司