《ES6基础教程》之 map、forEach、filter indexOf 用法
1,map,对数组的每个元素进行一定操作,返回一个新的数组。
1 var oldArr = [{first_name:"Colin",last_name:"Toh"},{first_name:"Addy",last_name:"Osmani"},{first_name:"Yehuda",last_name:"Katz"}]; 2 function getNewArr () { 3 return oldArr.map(function(item,index){ 4 item.full_name= [item.first_name,item.last_name].join(" "); 5 return item; 6 }); 7 } 8 console.log(getNewArr());
2,forEach 为每个元素执行对应的方法。
1 var arr=[1,2,3,4,5,6,7,8]; 2 for ( var i =0,l= arr.length;i<l;i++) { 3 console.log(arr[i]); 4 }; 5 arr.forEach(function(item,index){ 6 console.log(item); 7 });
3,filter 匹配过滤条件的数组。
1 var arr = [ 2 {"name":"apple", "count": 2}, 3 {"name":"orange", "count": 5}, 4 {"name":"pear", "count": 3}, 5 {"name":"orange", "count": 16}, 6 ]; 7 var newArr=[]; 8 for(var i=0,l=arr.length;i<l;i++){ 9 if(arr[i].name==="orange"){ 10 newArr.push(arr[i]); 11 } 12 } 13 var newArr=arr.filter(function(){ 14 return item.name==="orange"; 15 }); 16 console.log("Filer results",newArr);
4,indexOf方法返回数组中的找到的第一个元素的位置,若不存在返回-1。
1 var arr = ['apple','orange','pear']; 2 console.log("found:", arr.indexOf("orange") != -1);