js中三个对数组操作的函数 indexOf()方法 filter筛选 forEach遍历 map遍历

 indexOf()方法 

 

indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1
不使用indexOf时
var arr = ['apple','orange','pear'],   found = false; for(var i= 0, l = arr.length; i< l; i++){     if(arr[i] === 'orange'){       found = true;     } } console.log("found:",found);
使用后
var arr = ['apple','orange','pear']; console.log("found:", arr.indexOf("orange") != -1); //一直找,不返回,上面讲了没找到返回-1,所以不等于-1就是说一直找,找到返回布尔值true,没找到那个数组里面的值就返回false //去除重复元素并用sort排序 var arr = ['a','c','b','d','a','b'] var arr2 = []; for(var i = 0;i<arr.length;i++){ if(arr2.indexOf(arr[i])==-1){ arr2.push(arr[i]); } } arr2.sort(); console.log(arr2);//["a", "b", "c", "d"]

 

 filter筛选

没有使用filter筛选的循环数组的写法
var arr = [ {"name":"apple", "count": 2}, {"name":"orange", "count": 5}, {"name":"pear", "count": 3}, {"name":"orange", "count": 16} ]; var newarr = []; for(i=0,l=arr.length;i<l;i++){ if(arr[i].name==='pear'){ newarr.push(arr[i]); } } console.log(newarr)
使用filter后的写法
var arr = [ {"name":"apple", "count": 2}, {"name":"orange", "count": 5}, {"name":"pear", "count": 3}, {"name":"orange", "count": 16} ]; var newArr = arr.filter(function(item){ //传入参数进行筛选,有就输出这组数据     return item.name === "pear";
  }); console.log(
"Filter results:",newArr);

forEach遍历与map遍历

不使用forEach便利的传统for写法
var arr = [1,2,3,4,5,6,7,8];
for(var i= 0, l = arr.length; i< l; i++){ console.log(arr[i]); } 使用forEach便利 arr.forEach(function(item,index){ //forEach是用来替换for循环的 console.log(item); });

// 这个不能像 map 一样 赋值 返回 例如 这样 直接报 undefined map 可以这么用
let newArr = arr.forEach(function(item,index){ //forEach是用来替换for循环的
     return item
});
console.log(newArr) 
var a = [1, 2, 3];

a.map(function (elemt) {
    console.log(elemt); //结果 1 2 3
});

注意:forEach、map等函数只能便利数组的形式 如果里面是 json 键值对的形式存在 你可 先声明一个 Arr 数组对象
例如 let arr = [] 然后再把 获取到的 json 数据 push 进去 就可以正常的遍历了

 

转载于:https://www.cnblogs.com/Model-Zachary/p/6124997.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值