一、遍历数组的方法
1、经典的for循环
let arr = ['apple','boy','cat','dog'];
for(let i=0;i<arr.length;i++){
console.log(i);
}
2、for in
//index表示数组的下标
let arr = ['apple','boy','cat','dog'];
for(index in arr){
console.log(index + " " + arr[index]);
}
输出结果:
3、for of
//value 表示数组的值
let arr = ['apple','boy','cat','dog'];
for(value of arr){
console.log(value);
}
输出结果:
4、forEach()
let arr = ['apple','boy','cat','dog'];
arr.forEach((item,index) =>{
console.log(index + "---" + item);
})
输出结果:
5、map() : return得到一个新数组,不影响原数组
let arr = ['apple','boy','cat','dog'];
newArr = arr.map((item,index) => {
console.log(index + "---" + item);
return 99+item;
})
console.log(arr);
console.log(newArr);
输出结果:
二、循环遍历对象
1、for in : 不仅可以遍历数组,也可以遍历对象
//key 代表对象中的键值key
let obj = {
name:"Greg",
age:20,
job:"student"
};
for(key in obj){
console.log(key + " " + obj[key]);
}
输出结果:
2、Object.keys(obj), Object.values(obj), Object.entries(obj) : 返回对象的所有可枚举属性的字符串数组
let obj = {
name:"Greg",
age:20,
job:"student"
};
console.log(Object.keys(obj));
console.log(Object.values(obj));
console.log(Object.entries(obj));
输出结果:
3、Object.getOwnPropertyNames(obj) : 返回一个对象key键值的数组,包含对象自身的所有属性(包含不可枚举属性)
let obj = {
name:"Greg",
age:20,
job:"student"
};
console.log(Object.getOwnPropertyNames(obj));
Object.getOwnPropertyNames(obj).forEach(key => console.log(key + " " + obj[key]));
三、思考:let test = [{name:“Greg”,age:18},{name:“Nich”,age:30},{name:“John”,age:12}]
如何获取到数组对象中的age值?并且将age按从小到大排序?
1、如何获取到数组对象中的age值
let test = [
{name:"Greg",age:18},
{name:"Nich",age:30},
{name:"John",age:12}
];
for(item of test){
console.log(item.age);
}
思路:数组循环遍历出item对象,再用遍历对象的方法循环遍历出键值key
2、将age按从小到大排序
let test = [
{name:"Greg",age:18},
{name:"Nich",age:30},
{name:"John",age:12}
];
function compare(property){
return function(a,b){
let pev = a[property];
let cur = b[property];
return pev - cur;
}
}
test.sort(compare("age"));
console.log(test);
输出结果: