核心提示:数组的迭代遍历格式数组/boolean/无 = 数组.every/filter/forEach/map/some(function(element,index,arr){程序和返回值;});every...
数组的迭代遍历
格式
数组/boolean/无 = 数组.every/filter/forEach/map/some( function(element,index,arr){ 程序和返回值; } );
every()
参数:回调函数
返回值;boolean类型值
var arr = ["关长","张飞","赵子龙","马超","黄忠"]; var cool= arr.every(function (elements,index,array) { console.log(elements); console.log(index); console.log(array); });
如结果所示,只遍历了数组的第一个元素,原因是因为其他对数组中每一项运行以下函数,如果都返回true,every返回true,如果有一项返回false,则停止遍历 every返回false;不写默认返回false,而上述代码没有返回值默认为false
若想遍历所有元素则需要添加return true
var arr = ["关长","张飞","赵子龙","马超","黄忠"]; var cool= arr.every(function (elements,index,array) { console.log(elements); console.log(index); console.log(array); return true ; });
3
补充:
var arr = ["关长","张飞","赵子龙","马超","黄忠"]; var cool= arr.every(function (elements,index,array) { elements="sss";//该不改变数组本身元素。 array[index]="sss";// 该行代码可以修改数组本身的第一项元素 console.log(elements); console.log(index); console.log(array); });
运行结果:
filter返回值是一个新数组。return为true的数组。
var arr = ["关长","张飞","赵子龙","马超","黄忠"]; var arr1 = arr.filter(function (ele,index,array) { if(ele.length>2){ return true; } return false; }); console.log(arr1);
运行结果:
如结果所示,元素长度超过2的没有打印,即只打印了return为ture的数组
foreach遍历数组(无返回值,纯操作数组中的元素)
var arr = ["关长","张飞","赵子龙","马超","黄忠"]; var str = "!"; arr.forEach(function (ele,index,array) { str+=ele; }); alert(str);*
运行结果:
map有返回值,返回什么都添加到新数组中。
var arr = ["关长","张飞","赵子龙","马超","黄忠"]; var cool= arr.map(function (element,index,array) { return element+"你好"; }); console.log(cool);
运行结果:
如图所示,所有元素都添加了你好<喎?http://www.weiyer.com/Search.asp?KeyWord=/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMiBpZD0="some有返回值函数结果有一个是true本方法结果也是true">some有返回值,函数结果有一个是true,本方法结果也是true。
var arr = ["关长","张飞","赵子龙","马超","黄忠"]; var flag = arr.some(function (ele,index,array) { if(ele.length>2){ return true; } return false; }) alert(flag);