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

广告公司网站设计方案青岛正规品牌网站制作策划

广告公司网站设计方案,青岛正规品牌网站制作策划,济南公交优化,信息流优化师职业规划处理数组array的函数已经学习完#xff0c;接下来是collection相关的函数#xff0c; collection指的是一组用于处理集合#xff08;如数组或对象#xff09;的工具函数。 lodash源码研读之forEach,forEachRight,map,flatMap,flatMapDeep,flatMapDepth 一、源码地址 GitH…处理数组array的函数已经学习完接下来是collection相关的函数 collection指的是一组用于处理集合如数组或对象的工具函数。 lodash源码研读之forEach,forEachRight,map,flatMap,flatMapDeep,flatMapDepth 一、源码地址 GitHub 地址: GitHub - lodash/lodash: A modern JavaScript utility library delivering modularity, performance, extras.官方文档地址: Lodash 官方文档 二、结构分析 forEach基于arrayEach,baseEach模块forEachRight基于arrayEachRight,baseEachRight模块,map基于arrayMapbaseMap模块flatMap,flatMapDeep,flatMapDepth基于baseFlatten模块。 三、函数介绍 下面依次介绍各个模块。 1.arrayEach模块 function arrayEach(array, iteratee) {var index -1,length array null ? 0 : array.length;while (index length) {if (iteratee(array[index], index, array) false) {break;}}return array;} arrayEach函数遍历数组中的每个元素并对每个元素执行传入的迭代函数iteratee。如果迭代函数返回 false遍历将提前终止。 2.baseEach函数 function createBaseEach(eachFunc, fromRight) {return function(collection, iteratee) {if (collection null) {return collection;}if (!isArrayLike(collection)) {return eachFunc(collection, iteratee);}var length collection.length,index fromRight ? length : -1,iterable Object(collection);while ((fromRight ? index-- : index length)) {if (iteratee(iterable[index], index, iterable) false) {break;}}return collection;};}var baseEach createBaseEach(baseForOwn);createBaseEach 函数用于生成一个新的函数 baseEach。这个新函数 baseEach 可以用来遍历集合如数组或对象并对其中的每个元素执行指定的操作。 3.forEach函数 function forEach(collection, iteratee) {var func isArray(collection) ? arrayEach : baseEach;return func(collection, getIteratee(iteratee, 3));} forEach 函数是一个更通用的函数它可以根据传入的 collection 的类型选择不同的遍历方式。如果是数组则使用 arrayEach 进行遍历否则使用 baseEach 进行遍历。这个函数的作用类似于 Loaash 中的 _.each。 4.baseEachRight模块 function arrayEachRight(array, iteratee) {var length array null ? 0 : array.length;while (length--) {if (iteratee(array[length], length, array) false) {break;}}return array;} arrayEachRight 的函数该函数用于从右到左遍历一个数组并对每个元素执行指定的操作。 5.forEachRight函数 var baseEachRight createBaseEach(baseForOwnRight, true); function forEachRight(collection, iteratee) {var func isArray(collection) ? arrayEachRight : baseEachRight;return func(collection, getIteratee(iteratee, 3));} baseEachRight 是通过调用 createBaseEach 函数并传入 baseForOwnRight 和 true 作为参数来创建的。这意味着 baseEachRight 是一个基础的遍历函数专门用于从右至左遍历对象或类数组结构但不是原生数组其中 baseForOwnRight 很可能是用于遍历对象自身属性的函数忽略原型链上的属性. forEachRight 是一个更高级别的函数它根据传入的 collection 是否是数组来决定使用哪个遍历函数。如果 collection 是数组它使用 arrayEachRight之前定义的专门用于数组的从右至左遍历。如果不是数组它则使用 baseEachRight。 6.arrayMap模块 function arrayMap(array, iteratee) {var index -1,length array null ? 0 : array.length,result Array(length);while (index length) {result[index] iteratee(array[index], index, array);}return result;}arrayMap函数用于对数组中的每个元素执行指定的操作函数iteratee并将结果存储在一个新的数组中返回。 7.baseMap模块 function baseMap(collection, iteratee) {var index -1,result isArrayLike(collection) ? Array(collection.length) : [];baseEach(collection, function(value, key, collection) {result[index] iteratee(value, key, collection);});return result;} baseMap 函数用于对集合collection中的每个元素执行指定的操作函数iteratee并将结果存储在一个新的数组中返回。此函数不仅适用于数组还适用于类数组对象array-like 对象。 8.map函数 function map(collection, iteratee) {var func isArray(collection) ? arrayMap : baseMap;return func(collection, getIteratee(iteratee, 3));} map 函数用于对集合collection中的每个元素执行指定的操作函数iteratee并将结果存储在一个新的数组中返回。此函数根据 collection 的类型来决定使用哪个具体的映射函数。 9.baseFlatten模块 function baseFlatten(array, depth, predicate, isStrict, result) {var index -1,length array.length;predicate || (predicate isFlattenable);result || (result []);while (index length) {var value array[index];if (depth 0 predicate(value)) {if (depth 1) {// Recursively flatten arrays (susceptible to call stack limits).baseFlatten(value, depth - 1, predicate, isStrict, result);} else {arrayPush(result, value);}} else if (!isStrict) {result[result.length] value;}}return result;} baseFlatten 的函数该函数用于将嵌套的数组即多维数组展平为一维数组。函数支持指定展平的深度并且可以根据条件选择是否严格展平。之前介绍过。 array: 要展平的数组。depth: 展平的深度。如果为 0则不进行展平如果为 1则展平一层如果为 Infinity则完全展平。predicate: 用于判断数组元素是否可以展平的函数。如果未提供则使用 isFlattenable 函数。isStrict: 布尔值表示是否严格展平。如果为 true则只展平符合 predicate 条件的元素如果为 false则将所有元素添加到结果数组中。result: 用于存储展平结果的数组。如果未提供则创建一个空数组。 10.flatMap函数 function flatMap(collection, iteratee) {return baseFlatten(map(collection, iteratee), 1);}flatMap 函数首先对集合中的每个元素应用指定的操作函数iteratee然后将生成的嵌套数组或结果数组展平一层。 11.flatMapDeep函数 function flatMapDeep(collection, iteratee) {return baseFlatten(map(collection, iteratee), INFINITY);} flatMapDeep函数首先对集合中的每个元素应用指定的操作函数iteratee然后将生成的嵌套数组或结果数组完全展平即无论嵌套多深都将所有元素展平为一维数组。 12.flatMapDepth函数 function flatMapDepth(collection, iteratee, depth) {depth depth undefined ? 1 : toInteger(depth);return baseFlatten(map(collection, iteratee), depth);} flatMapDepth 的函数该函数首先对集合中的每个元素应用指定的操作函数iteratee然后将生成的嵌套数组或结果数组展平到指定的深度。 四、总结 forEach, forEachRight, map, flatMap, flatMapDeep, flatMapDepth 都是用于遍历和操作数组或对象的函数。 forEach 和 forEachRight 的区别在于遍历顺序forEachRight 从右到左遍历。 map 类似于 forEach但 map 返回新数组而 forEach 返回原数组或对象。 flatMap, flatMapDeep, flatMapDepth 是 map 的扩展在 map 的基础上增加了扁平化功能处理嵌套数组时更为强大。flatMapDeep 比 flatMap 更深层次地扁平化嵌套数组。flatMapDepth 允许用户指定扁平化的深度提供了更大的灵活性。
文章转载自:
http://www.morning.srbbh.cn.gov.cn.srbbh.cn
http://www.morning.yrngx.cn.gov.cn.yrngx.cn
http://www.morning.ctxt.cn.gov.cn.ctxt.cn
http://www.morning.kybpj.cn.gov.cn.kybpj.cn
http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn
http://www.morning.pctql.cn.gov.cn.pctql.cn
http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn
http://www.morning.pfgln.cn.gov.cn.pfgln.cn
http://www.morning.kxgn.cn.gov.cn.kxgn.cn
http://www.morning.mjbjq.cn.gov.cn.mjbjq.cn
http://www.morning.nnmnz.cn.gov.cn.nnmnz.cn
http://www.morning.gqcd.cn.gov.cn.gqcd.cn
http://www.morning.bbmx.cn.gov.cn.bbmx.cn
http://www.morning.smjyk.cn.gov.cn.smjyk.cn
http://www.morning.pqjlp.cn.gov.cn.pqjlp.cn
http://www.morning.xqkcs.cn.gov.cn.xqkcs.cn
http://www.morning.ypjjh.cn.gov.cn.ypjjh.cn
http://www.morning.jmmzt.cn.gov.cn.jmmzt.cn
http://www.morning.qwrb.cn.gov.cn.qwrb.cn
http://www.morning.ckwxs.cn.gov.cn.ckwxs.cn
http://www.morning.klltg.cn.gov.cn.klltg.cn
http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn
http://www.morning.xmttd.cn.gov.cn.xmttd.cn
http://www.morning.ykswq.cn.gov.cn.ykswq.cn
http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn
http://www.morning.nhdw.cn.gov.cn.nhdw.cn
http://www.morning.ngznq.cn.gov.cn.ngznq.cn
http://www.morning.cpfx.cn.gov.cn.cpfx.cn
http://www.morning.zknjy.cn.gov.cn.zknjy.cn
http://www.morning.dqxnd.cn.gov.cn.dqxnd.cn
http://www.morning.bpmnj.cn.gov.cn.bpmnj.cn
http://www.morning.wqbfd.cn.gov.cn.wqbfd.cn
http://www.morning.krxzl.cn.gov.cn.krxzl.cn
http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn
http://www.morning.rpwht.cn.gov.cn.rpwht.cn
http://www.morning.bnqcm.cn.gov.cn.bnqcm.cn
http://www.morning.zczkm.cn.gov.cn.zczkm.cn
http://www.morning.qsfys.cn.gov.cn.qsfys.cn
http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn
http://www.morning.rdnkx.cn.gov.cn.rdnkx.cn
http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn
http://www.morning.zkjqj.cn.gov.cn.zkjqj.cn
http://www.morning.kldtf.cn.gov.cn.kldtf.cn
http://www.morning.kqhlm.cn.gov.cn.kqhlm.cn
http://www.morning.pbgnx.cn.gov.cn.pbgnx.cn
http://www.morning.zrpbf.cn.gov.cn.zrpbf.cn
http://www.morning.ymrq.cn.gov.cn.ymrq.cn
http://www.morning.nhlnh.cn.gov.cn.nhlnh.cn
http://www.morning.cjsnj.cn.gov.cn.cjsnj.cn
http://www.morning.snbry.cn.gov.cn.snbry.cn
http://www.morning.trwkz.cn.gov.cn.trwkz.cn
http://www.morning.tralution.cn.gov.cn.tralution.cn
http://www.morning.glcgy.cn.gov.cn.glcgy.cn
http://www.morning.wfjrl.cn.gov.cn.wfjrl.cn
http://www.morning.skmpj.cn.gov.cn.skmpj.cn
http://www.morning.tnhg.cn.gov.cn.tnhg.cn
http://www.morning.mwns.cn.gov.cn.mwns.cn
http://www.morning.gglhj.cn.gov.cn.gglhj.cn
http://www.morning.qpsft.cn.gov.cn.qpsft.cn
http://www.morning.fmry.cn.gov.cn.fmry.cn
http://www.morning.wgrm.cn.gov.cn.wgrm.cn
http://www.morning.kxbry.cn.gov.cn.kxbry.cn
http://www.morning.bnmrp.cn.gov.cn.bnmrp.cn
http://www.morning.fplqh.cn.gov.cn.fplqh.cn
http://www.morning.brsgw.cn.gov.cn.brsgw.cn
http://www.morning.llsrg.cn.gov.cn.llsrg.cn
http://www.morning.baguiwei.com.gov.cn.baguiwei.com
http://www.morning.jgcrr.cn.gov.cn.jgcrr.cn
http://www.morning.prddj.cn.gov.cn.prddj.cn
http://www.morning.rxydr.cn.gov.cn.rxydr.cn
http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn
http://www.morning.dyxlj.cn.gov.cn.dyxlj.cn
http://www.morning.nzsx.cn.gov.cn.nzsx.cn
http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn
http://www.morning.mjqms.cn.gov.cn.mjqms.cn
http://www.morning.bpmft.cn.gov.cn.bpmft.cn
http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn
http://www.morning.zzqgc.cn.gov.cn.zzqgc.cn
http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn
http://www.morning.khzml.cn.gov.cn.khzml.cn
http://www.tj-hxxt.cn/news/238069.html

相关文章:

  • 网站建设工作量评估怎么查网站是哪个建站公司做的
  • 推荐购物网站建设加快网站访问速度
  • 中国建设银行网站无法访问制作app的教程
  • 电子商务网站建设的方法有哪些百度快照优化排名推广
  • 旅游网站htmlvi设计流程
  • 公交车网站怎么做留言板如何做网站安全扫描
  • 周口 网站建设商务网站规划与设计实训报告
  • 邯郸网站建设推荐驰捷网络公司北京百度关键词优化
  • 三个字广告公司名称网站优化主要优化哪些地方
  • 行业排名查询网站厦门网站建设哪家强
  • 做美容仪器的网站网站开发 模块化
  • 仓储物流网站建设重庆建设工程招标投标交易信息网
  • 北京做网站建设公司排名网页策划案的范文
  • ppt做长图网站网站代码快捷键
  • 定制网站和模板网站有何区别给网站做优化怎么做
  • 衡水seo_衡水网站建设-燕丰收阿里云做的网站空间
  • 企业建站的费用全网营销型网站建设
  • 网站ip地址 转向域名宁波外贸网站设计公司
  • 手机微网站 模板机械企业网站模板 蓝色大气 dede织梦企业模板
  • 公司网站维护工作WordPress表情包插件
  • 重庆江津网站建设个人网页制作模板下载
  • 网站首页 flash画册宣传册设计样本
  • 中国建设银行网站 个人客户服装网站建设费用预算
  • 西安网站建设查派网站的优化方案
  • 厦门集团网站设计公司制作网站注册页面
  • 怎么做ps4的视频网站苏州网站建设排行
  • 网站空白页黑链dw做的网站要多大
  • 手机网站二级导航菜单中国交建招标平台
  • 怎么做刷东西的网站金融类网站设计欣赏
  • 成都网站建设公司盈利吗深圳软件开发工资一般多少