ES5 中新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括:
- 数组方法
- 字符串方法
- 对象方法
1. 数组方法
迭代(遍历)方法:forEach()
、map()
、filter()
、some()
、every()
;
1.1 forEach()
arr.forEach(function(value, index, array) {
//参数1:数组当前项的值
//参数2:数组元素的索引
//参数3:数组对象本身
})
//相当于数组遍历的 for循环 没有返回值
1.2 filter()
var arr = [12, 66, 4, 88, 3, 7];
var newArr = arr.filter(function(value, index, array) {
//参数一:数组当前项的值
//参数二:数组元素的索引
//参数三:数组对象本身
return value >= 20;
});
console.log(newArr); //[66,88] //返回值是一个新数组
1.3 some()
// some 查找数组中是否有满足条件的元素
var arr = [10, 30, 4];
var flag = arr.some(function(value, index, array) {
//参数一:数组当前项的值
//参数二:数组元素的索引
//参数三:数组对象本身
return value < 3;
});
console.log(flag); // false
//返回值是布尔值,只要查找到满足条件的一个元素就立马终止循环
some()
和forEach()
区别:
- 如果查询数组中唯一的元素,用
some()
方法更合适,在some()
里面遇到return true
就终止遍历,迭代效率更高 - 在
forEach()
里面return
不会终止迭代
2. 字符串方法trim()
trim()
方法会从一个字符串的两端删除空白字符。 并不影响原字符串本身,它返回的是一个新的字符串。
var str = ' hello ';
console.log(str);
console.log(str.trim()) //hello 去除两端空格
3. 对象方法
3.1 Object.keys()
Object.keys(对象)
获取到当前对象中的属性名 ,返回值是一个数组
var obj = {
id: 1,
pname: '手机',
price: 4999,
num: 2000
};
var result = Object.keys(obj);
console.log(result); // [id,pname,price,num]
3.2 Object.defineProperty()
Object.defineProperty()
设置或修改对象中的属性
Object.defineProperty(obj, prop, descriptor);
obj
:必需。目标对象prop
:必需。需定义或修改的属性的名字descriptor
:必需。目标属性所拥有的特性
Object.defineProperty()
第三个参数descriptor
说明:
value
:设置属性的值writable
:值是否可以重写。true | false
enumerable
:目标属性是否可以被枚举。true | false
configurable
:目标属性是否可以被删除或是否可以再次修改特性true | false