javascript
Posted im73
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript相关的知识,希望对你有一定的参考价值。
js的数组迭代方法
Array.forEach
forEach方法为每个数组元素调用一次函数(回调函数)。 数组求和: var arr = [1,2,4,67,3]; var result=0; arr.forEach(sumArray); function sumArray(value, index, array) { result += value; } 上面的例子只使用了value一个参数,所以可以省略index和array两个参数。
Array.map
跟forEach类似,不过是通过返回值来建立一个新数组,但不改遍原数组的值。不会为undefined原素执行。 将某一个数组每个元素都*2: var number = [1,2,3]; var doubleNumber = number.map(doubleArray); function doubleArray(value, index, array) { return value * 2; }
Array.filter
跟以上的用法类似,用于筛选满足条件的元素创建新的数组。
Array.reduce,Array.reduceRight
用于迭代计算。接受四个参数total, value, index, array 例数组求和: var arr = [1,2,4,67,3]; var result=arr.reduce(sumArray,0); function sumArray(total, value, index, array) { return total + value; } 可以不用写初始值0,reduceRight类似,只不过计算是从右到左。
Array.every,Array.some
使用方法类似,判断是否数组的所有值或者某一个值满足条件,学过离散数学应该很好理解。 判断是否所有元素大于5: function everyGTZ(value) { return value - 5; }
Array.find,Array.findIndex
使用返回类似,find返回的是数组的元素,findIndex返回的是数组元素的下标,均返回第一个元素。
js函数
跟其他语言类似,参数是通过值传递——如果函数改变了参数的值,它不会改变参数的原始值。对象是引用传递——如果函数改变了对象属性,它也改变了原始值。
js闭包
var add = (function () { var counter = 0; return function () {return counter += 1;} })(); add(); add(); add();
counter的值是3
以上是关于javascript的主要内容,如果未能解决你的问题,请参考以下文章