数组方法(forEach,filter,some)和字符串trim方法和Object.keys(对象),Object.defineProperty
1.数组方法forEach遍历数组
arr.forEach(function(value,index,array){
//参数1:数组元素;
//参数2:数组元素的索引
//参数3:当前数组
})
//相当于数组遍历的for循环,没有返回值
2.数组方法filter过滤数组
var arr = [10,20,30,40,50,60,70,80,90];
var newArr = arr.filter(function(value,index,array){
//参数1:数组元素;
//参数2:数组元素的索引;
//参数3:当前数组;
return value >=30;
});
console.log(newArr); // 返回值是一个新数组 [30,40,50,60,70,80,90]
3.数组方法some
查找数组中是否有满足条件的元素
var arr = [10,20,30];
var flag = arr.some(function(value,index,array){
//参数1:数组元素;
//参数2:数组元素的索引
//参数3:当前的数组
return value > 20;
});
console.log(flag);//返回值是布尔值,只要查找到满足条件的一个元素就立马终止循环
4.some和forEach区别
1.如果查询数组中唯一的元素,用some方法更合适,在some里面遇到return true 就是终止遍历,迭代效率更高;
2.在forEach里面return不会终止迭代;
5.trim方法去除字符串两端空格
var str = ' oneone ';
console.log(str.trim()); //oneone两端空格去除
6.获取对象的属性名
Object.keys(对象)获取到当前对象中的属性名,返回值是一个数组
var obj = {
uname: '小明',
age:18,
sex: '男'
}
console.log(Object.keys(obj));//[uname,age,sex]
7.Object.defineProperty
Object.defineProperty设置或修改对象中的属性
Object.defineProperty(对象,修改或者新增的属性名,{
value:修改或新增的属性的值,
writable:true/false,//如果为false不允许修改这个属性值
enumberable:false,//enumberable如果值为false 则不允许遍历
configurable:false //configurable如果为false则不允许删除这个属性,属性是否可以被删除或者可以再次修改特性
})