JS中的循环
for循环
let nums=[1,2,3];
for(let i=0;i<nums.length;i++){console.log(nums[i])};
forEach循环
弊端:不支持break
nums.forEach(item=>console.log(item));
nums.forEach((item,j)=>console.log(item,j));
forIn循环
var obj1={id:100,name:'A'};//js中的原生对象
for(let i in obj1){
console.log(i)
}
//id
//name
forOf循环
可以循环集合和数组
var objArray=[{id:100,name:'A'},{id:101,name:'B'}];
for(let m of objArray){
console.log(m);
}
//{id: 100, name: "A"}
//{id: 101, name: "B"}
//打印key
for(let m of objArray){
console.log(Object.keys(m));
}
//["id", "name"]
//["id", "name"]
//打印值
for(let m of objArray){
console.log(Object.values(m));
}
//[100, "A"]
//[101, "B"]
练习
//基于客户端指定的字段,将服务端返回的数据取出来
//客户端指定要呈现的数据
let colums=[{field:"id"},{field:"name"},{field:"parentId"}];
//服务端返回来的数据
let objs=[{id:100,name:"A",parentId:1,note:"AAA"},{id:101,name:"B",parentId:2,note:"BBB"}];
//获取colums中指定的所有字段
var fields=[];
for(let col of colums){
fields.push(col.field);
}
//3
fields
//["id", "name", "parentId"]
for(let obj of objs){
fields.forEach(item=>{
console.log(obj[item]);
})
}
//100
//A
//1
//101
//B
//2
//基于客户端给定的字段,将服务端返回的数据提取出来
for(let a of objs){
let group=[];
fields.forEach(item=>{
group.push(a[item]);
});
console.log(group);
};
//[100, "A", 1]
//[101, "B", 2]