JS Array数组几个循环实用方法总结


微信搜索【大奇测试开】,关注这个坚持分享测试开发干货的家伙。

背景

在平台前端开发过程中会有对接口数据的再处理,其中数组类型就是常见之一,实际场景中,比如表数据提取用于筛选或提取符合条件的自定义数据列表,还有更复杂如多个接口数据合并等,在自己JS编程有限能力下,往往用常规的 for 实现,但在复杂对象或多层循环处理中,可读性和逻辑性就显得差强人意。

const tb_data = [
  {"title":"计划1","passed":10,"failed":0,"skipped":0},
  {"title":"计划2","passed":5,"failed":3,"skipped":2},
  {"title":"计划2","passed":15,"failed":2,"skipped":1}
];

const sum_result = {"passed":0, "failed":0, "skipped":0}

// for循环需要临时变量,数组长度,并且通过下角标获取内层属性值,多层数据依此增加循环嵌套
for (let i=0; i Object { passed: 30, failed: 5, skipped: 3 }

经过资料查询学习和实际应用,这里总结一些实用的JS数组处理方法,学会这些往往能大大提升编程效率,这些方法分别是forEachmapfilter , 不过在介绍语法和例子之前先给出两个的两个结论:

  • 性能上:for循环 > forEach > map
  • 可读性:forEach/map > for循环

这里不做扩展讨论和数据对比,因为在没有绝对数量级别的处理需求下无大感知差异,更多关注可读性和更易编程性。

forEach

方法对数组进行一次遍历,并将每个元素传递给回调函数,返回值为undefinded,不支持链式,一个简单循环打印的例子如下:

const datas = ['Da', 'Qi', 'DevTest'];

datas.forEach((element, index) => console.log(index, element));

// > 0 "Da"
// > 1 "Qi"
// > 2 "DevTest"

JavaScript-Array 这个教程。

另外由于笔者也没有系统学过JS,所以在这次整理有也了解的两个名词,简单理解下记录下。
JavaScript Array forEach()

  • [2] JavaScript Array map()
  • [3] JavaScript Array filter()