遍历

1. 遍历数组

方法一: for

for(var i=0; i<arr.length; i++){
}

方法二: 比方法一效率高 for

for(var i=0, leng = arr.length; i<leng; i++){
}

方法三: forEach (单纯遍历数组)

方法三----六, 只遍历数组, 不遍历伪数组

arr.forEach(function(item, index, arr){ // 形参, 用到啥写啥, 但是顺序要对
})

如何让伪数组使用forEach方法?

var lis = document.getElementByTagName('li');
// call 方法传入的是参数列表, apply方法传入的参数是数组
Array.prototype.forEach.call(lis, function(item, index, arr){
	item.onclick = fn;
})
function fn() {
	console.log(this.innerText);
}

方法四 every (判断数组中, 每一项是否符合条件, 主要用这个方法的返回值)

arr.every(function(item, index, arr){
	retrun item > 1; // ture 数组中每一项都大于1; false 有不符合条件的
})

方法五 some (判断数组中, 是否有符合条件的宝宝)

arr.some(function(item, index, arr){
	return item > 46; // ture 至少有一项符合条件, false 不存在符合条件的项
})

方法六 filter (过滤器, 直接返回一个新数组, 这个新数组都是符合条件的项)

var newArr = arr.filter(function(item, index, arr){
	return item > 15; // 符合这个条件的项, 都会被放入新的数组
})

方法七 map (映射. 返回一个新数组, 这个新数组是map回调函数return的)

var arr = [1, 2, 3];
var arr1 = arr.map(function(item, index, arr){
	return item * 10;
})

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
应用: 后台返回的数据结构不适用我们前端的需求, 就用map映射出一个新的, 符合我们要求的.
this.$http
 .post("api/pageList", this.$qs.stringify(param))
 .then(res => {
   var arr = res.data.data.rows;

   var lists = arr.map((item, index, arr) => {
     // console.log("item", item);
     // 只渲染与上次请求返回的不一样的数据
     if (this.oldArr.indexOf(item.record.id) > -1) {
       // 这里就是undefind产生地
     } else {
       let newList = {};
       newList.list = [];
       for (var k in item.record) {
         console.log("item[k]", item[k]);
         if (k === "name") {
           newList.list.push({ label: "用户姓名", value: item.record[k] });
         } else {
           newList[k] = item.record[k];
         }
       }
       newList.list.push({ label: "机构", value: item.org.orgName })
       return newList;
     }
   });
   // 过滤掉undifined
   lists = lists.filter(item => item);
 });

方法八 find (查找, 有就返回该成员, 没有就返回undefined)

 var arr = [
	{id: 1, count: 2},
	{id: 2, count: 20},
	{id: 3, count: 200},
]
var arr1 = arr.find(item => item.id === 2)
congsole.log(arr1) // {id: 2, count: 20}
var arr2 = arr.find(item => item.id === 8)
congsole.log(arr2) // undefind

2. 遍历对象

方法一:

for(var key in dog){
 console.log(key); 
 console.log(dog[key]);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值