遍历
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]);
}